
- •1. Основные понятия и определения. Операционные системы как средство распределения и управления ресурсами.
- •2. Архитектура unix. Основные стандарты.
- •3. Модель системы unix.
- •4. Ядро системы. Внутренняя структура ядра.
- •5. Файловая подсистема
- •6. Подсистема ввода/вывода
- •7. Подсистема управления процессами
- •8. Работа в операционной системе unix
- •9 Файлы и файловая подсистема. Типы файлов.
- •11 Владельцы файлов. Права доступа к файлу. Дополнительные атрибуты файла.
- •12 Командный интерпритатор Shell. Синтаксис языка Bourn Shell. Общий синтаксис скрипта.
- •13 Основные утилиты unix
- •14 Подсистема управления процессом. Структура данных процесса, состояния процесса.
- •15Типы процессов: системные процессы, демоны, прикладные процессы.
- •16.Жизненый путь процесса. Инфраструктура процесса ос unix.
- •21. Планирование и управление процессами. Основные принципы и механизмы, обработка прерываний таймера, алармы, создание процесса.
- •22. Сигналы. Управление сигналами: отправление сигнала, доставка и обработка сигнала.
- •23. Взаимодействие между процессами. Средства межпроцессного взаимодействия.
- •24. Настройка командного интерпретатора. Работа с командным интерпретатором. Способы установки командного интерпретатора.
- •26. Файловая подсистема. Базовая файловая система System V . Основные компоненты файловой системы s5fs, массив индексных дескрипторов. Достоинства, недостатки.
- •27. Файловая система ffs. Основные изменения.
- •28. Архитектура виртуальной файловой системы. Монтирование файловой системы. Трансляция имен. Системные вызовы, требующие трансляции имени.
- •33. Блочные устройства
- •35. Трансляторы. Основные понятия и определения
- •36. Общие особенности языков программирования и трансляторов
- •37. Обобщённая структура компилятора, интерпритатора.
- •38. Фазы процесса трансляции и компиляции.
- •Обобщенная схема синтаксического анализатора
- •41. Варианты взаимодействия блоков транслятора. Особенности.
- •42. Многопроходная организация взаимодействия блоков транслятора. Достоинства и недостатки.
- •43. Однопроходная организация взаимодействия блоков транслятора. Достоинства и недостатки.
- •Наиболее широкое применение при разработке трансляторов нашли кс-грамматики и порождаемые ими кс языки. Способы записи синтаксиса языка
- •Метаязык Хомского
- •46 Метаязык Хомского-Щутценберже
- •49. Распознаватели.
- •50. Организация лексического анализа. Назначение и необходимость фазы
- •55. Грамматики с ограничениями на правила.
- •56.Устройства управления с конечной памятью.
- •57. Методы лексического анализа
- •58. Организация прямого л/а
- •59. Общие принципы организации синтаксического разбора. Назначение, классификация методов синтаксического разбора.
- •60. Методы синтаксического разбора.
- •Последовательность разбора.
- •Использование просмотра вперед.
- •Разработка программы по таблице переходов амп
- •64 Организация автоматов с магазинной памятью.
- •65 Распознаватель скобочных выражений.
- •67 Основные команды Linux. Ввод и вывод данных.
3. Модель системы unix.
Самый общий взгляд позволяет увидеть двухуровневую модель системы UNIX так, как она представлена на рисунке:
В центре находится ядро системы (kernel). Ядро непосредственно взаимодействует с аппаратной частью компьютера, изолируя прикладные программы от особенностей её архитектуры. Ядро имеет набор услуг, предоставляемых прикладным программам. К услугам ядра относятся операции ввода/вывода (открытия, чтения, записи и управления файлами), создания и управления процессами, их синхронизации и межпроцессорного взаимодействия. Все приложения запрашивают услуги ядра посредством системных вызовов.
Второй уровень составляют приложения или задачи, как системные, определяющие функциональность системы, так и прикладные, обеспечивающие пользовательский интерфейс UNIX. Однако, несмотря на внешнюю разнородность приложений, схемы их взаимодействия с ядром одинаковы.
4. Ядро системы. Внутренняя структура ядра.
Ядро обеспечивает базовую функциональность операционной системы:
создаёт процессы и управляет ими, распределяет память и обеспечивает доступ к файлам и периферийным устройствам.
Взаимодействие прикладных задач с ядром происходит посредством стандартного интерфейса системных вызовов. Интерфейс системных вызовов представляет собой набор услуг ядра и определяет формат запросов на услуги. Процесс запрашивает услугу посредством системного вызова определённой процедуры ядра, внешне похожего на обычный вызов библиотечной функции. Ядро от имени процесса выполняет запрос и возвращает процессу необходимые данные.
В приведённом примере программа открвает файл, считывает из него данные и закрывает этот файл. При этом операции открытия (open), чтения (read) и закрытия (close) файла выполняются ядром по запросу задачи, а функции open(2), read(2) и close(2) являются системными вызовами.
main ( )
{
int fd;
char buf[80]
/*Откроем файл – получим ссылку (файловый дескриптор) fd*/
fd = open(“file1”, O_RDONLY);
/*Считываем в буфер buf 80 символов*/
read (fd, buf, sizeof(buf));
/*Закроем файл*/
close (fd);
}
Внутренняя структура ядра UNIX представлена на рисунке:
Ядро состоит из 3 основных подсистем:
1. Файловая подсистема
2. Подсистема управления процессами и памятью
3. Подсистема ввода/вывода
5. Файловая подсистема
Файловая подсистема обеспечивает унифицированный интерфейс доступа к данным, расположенным на дисковых накопителях, и к периферийным устройствам. Одни и те же функции ореп(2), read(2), write(2) могут использоваться как при чтении или записи данных на диск, так и при выводе текста на принтер или терминал. Файловая подсистема контролирует права доступа к файлу, выполняет операции размещения и удаления файла, а также выполняет запись/чтение данных файла. Поскольку большинство прикладных функций выполняется через интерфейс файловой системы (в том числе и доступ к периферийным устройствам), права доступа к файлам определяют привилегии пользователя в системе. Файловая подсистема обеспечивает перенаправление запросов, адресованных периферийным устройствам, соответствующим модулям подсистемы ввода/вывода.