Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Система управления файлами (СУФ)

Системные операции UNIX

7.6.1. Основные особенности:

Аналитичность системных операций и библиотечных функций lib.c

 

1. access () - функция проверяет имеет ли разрешение на чтение, запись и

2. alarm () - посылает сигнал тревоги

3. ch dir () - сменить директорию

4. ch mod () - изменяет права доступа к файлам

5. ch own () - сменить владение

6. close () - закрыть файл

7. creat () - создать новый файл

8. dup () - создание копии, указанного дескриптора файла

9. exec () - исполнение указанного файла

10. exit () - завершение вызывающего процесса

11. fcntl () - обеспечивает управление открытыми файлами

12. fork () - создает новый процесс

 

1) Сходство построения GUI

- NC

- X Window

 

13. getpid () - возвращает идентификатор процесса

14. ioctl () - обеспечивает набор операций с устройствами

15. kill () - завершение процесса

16. link () - присваивает файлу новое имя

17. lscek () - изменяет положение указателя в файле

18. mkmod () - создает именованный канал связи

19. mount () - осуществляет монтирование файловой системы

20. msgetl () - управление сообщениями

 

Процесс - файл в памяти на этапе его исполнения

Диспетчер - программа, которая позволяет процессам конкурировать между

между собой за время процесса

При порождении процесса ему назначается некоторый дескриптор

Дескриптор процесса создает программы процесса:

- адрес в памяти

- размер выгруженной части процесса

- идентификатор процесса

- идентификатор пользователя

 

Контекст процесса - набор р-х об окружающей среде, в которой процесс

запускается

 

- идентификаторный номер пользователя

- идентификаторный номер групп

- ссылки на системную таблицу для всех открывающих процессов файлов

- указатель на деспритор текущего каталога

- список реакций на различные сигналы

 

fork - создание

wait - приостановка

exit - завершение

PS - установка статуса процесса

DID - установка процесса

UID - идентификатор пользователя

PPID - идентификатор родителя процесса

UID DID PPID SITME TTY TIME

Jan 3865 3699 13.03:06 tty3 0,00

Lisa 3699 -- 12:58:00 -20 0,00

 

SITME - системная некоторого времени

TTY - дисплей или монитор (рабочее место)

TIME - текущее время

 

Command - команды, которые были запущены

Ps.f

Bash

8. Однопользовательские операционные системы.

 

По своей сути ПОС – однопользовательская ОС. Выполняет первые 4 ранее перечисленные функции ОС. В настоящее время ПОСы спроектированы классическим образом.

 

Принципы построения ПОС:

1) иерархическое построение;

                     
 
а)
 
   
 
 
     
Абстрактная машина
     
 
 
   
       
Физическая машина
 
 

 

 


Достоинство нисходящей архитектуры в легкой возможности ее модернизации, т.к. i-тый слой связан с i±1 слоями и только.

 

Пример ОС с нисходящей архитектурой – UNIX.

 

2) спецификации и примитивы;

 

Примитивы – стандартные функции для каждого из слоев. Естественно, их число должно быть минимальным.

 

Спецификации – стыковщики слоев.

 

а) для каждого слоя должен быть свой набор спецификаций и примитивов, который и позволяет этому слою функционировать;

б) необходимо стремиться к тому, чтобы имела место ситуация “черных ящиков”, т.е. связь одного слоя с другим осуществляется только через спецификаторы;

в) они должны быть настолько просты и продуманы, чтобы у пользователя не возникло желание их модернизировать.

 

3) дружественный интерфейс;

Как сказано в нашем определении ОС, операционная система должна предоставлять пользовательский интерфейс. Как минимум она должна предоставлять командную оболочку (shell), которая дает пользователю возможность тем или иным способом запустить его прикладную программу. Однако в некоторых случаях, например, во встраиваемых контроллерах и других специализированных приложениях, такая оболочка может отсутствовать. При этом либо система вообще функционирует без вмешательства человека, либо пользователь работает только с одной прикладной программой.

Кроме того, ОС часто предоставляют средства - разделяемые библиотеки, серверы и т.д. для реализации графического пользовательского интерфейса прикладными программами. Часто оказывается сложно провести границу между ядром ОС и этими средствами, особенно если стандартная оболочка ОС реализована с их использованием. В некоторых системах, например в MS Windows 3.x и MacOS, практически все ядро состоит из средств реализации графического интерфейса.

В настоящее время оформилось два принципиально различных подхода к организации пользовательского интерфейса. Первый, исторически более ранний подход состоит в предоставлении пользователю командного языка, в котором запуск программ оформлен в виде отдельных команд. Этот подход известен как интерфейс командной строки (Command Line Interface - CLI).

Альтернативный подход состоит в символическом изображении доступных действий в виде картинок - икон icons на экране и предоставлении пользователю возможности выбирать действия при помощи мыши или другого координатного устройства ввода. Этот подход известен как графический пользовательский интерфейс (Graphical User Interface - GUI). Мы в дальнейшем будем использовать английские аббревиатуры, потому что писать полное название долго, русскоязычные аббревиатуры-кальки очень уж неблагозвучны, а выдумать короткий, корректный и благозвучный русскоязычный термин мы - скажем честно - слабы.

Разработчики современных ОС обычно предоставляют средства для реализации обоих подходов и, зачастую, оболочки, использующие оба типа интерфейсов. Однако среди пользователей предпочтение разных подходов вызывает горячие споры и, подчас, настоящие религиозные войны. Не желая вступать в такую войну ни на одной из сторон, мы попытаемся изложить аргументы в пользу каждого из подходов

Хороший интерфейс может погубить хорошую ОС, и наоборот.

 

4) представление информации;

 

Представление информации в ОС выступает в качестве объектов, реализуемых в обычных языках (не объектно-ориентированных), т.к. языки ООП требуют большего количества ресурсов.

 

ИКЯ – интерпретатор командного языка
Пользовательский интерфейс
Пример ПОС:

               
 
 
     
Абстрактная машина
 
     
СУФ – система управления файлами
     
Физическая машина
 
 

 

 


Спецификация ИКЯ:

 

<команда>:=<имя команды: список параметров>

 

<имя команды> - это либо имя базовой команды или имя файла, содержащего выполняемую команду;

 

<список параметров> - как правило, это имя (имена) файла (-ов).

 

Файл- это именованная последовательность байтов произвольной длины. Поскольку из этого определения вытекает, что файл может иметь нулевую длину, то фактически создание файла состоит в присвоении ему имени и рагистра его тв файловой системе-это одна из функций операционной системы. Даже когда мы создаем файл, работая в какой-то прикладной прграмме, в общем случае для этой операции привлекаются средства операционной системы.

 

Указатель f (на файл)

Логическая переменная (0 или 1)

Примитивы работы с файлами (открыть, закрыть, переместить указатель файла на необходимую позицию, и т.д.)

 

Открытие файла (f):

 

Если файл пустой, то логическая переменная = 1 (истине), иначе указ_f ® на 1-ую запись.

 

Чтение файла (f, необх_обл_пам):

 

Если логическая переменная = 1 (истине), то ошибка, иначе – назначить запись в необходимую область памяти, переместить указ_f.

 

Недостатки вышеприведенной нисходящей архитектуры:

1) ИКЯ в некоторых случаях необходим непосредственный доступ к физической машине, что мешает архитектуре быть нисходящей. Следовательно, необходимо учесть эти нюансы, т.е. обеспечить средства для доступа из ИКЯ к физической машине через СУФ.

2) Набор примитивов возрастает.

 

Решение проблемы:

1. устройства ввода/вывода = последовательный файл

       
 
буфер
 
Физическая машина


абстрактная машина + СУФ®

 
 


последовательный файл

 

Получили:

+ спецификации СУФ позволяют обращаться к любым устройствам ввода/вывода;

+ изменение конфигурации упрощается.

 

2. ввести дополнительный слой, который позволил бы обрабатывать абстрактную информацию как условно физическую, и наоборот (МВВ – машина ввода/вывода).

           
 
Тогда получили:
   
Пример МВВ – FAT (File Allocation Table)
 
 

 


Рассмотрим FAT как МВВ:

           
   
FCB
 
 
   
Первый кластер
 

 


Каждому кластеру соответствует своя позиция в FAT:

 
 

 


Машина Функция Интерфейс
ИКЯ Интерпретация ком. языка Командный язык
СУФ Указание на файл Операции над файлами
МВВ Управление вводом/выводом Машинный язык
ФМ Физический уровень Прерывания и спецификации для работы с ПУ

 

<== предыдущая лекция | следующая лекция ==>
Windows NT | Системы коллективного пользования машин
Поделиться с друзьями:


Дата добавления: 2013-12-13; Просмотров: 741; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.04 сек.