- •Ос в общей структуре компьютера.
- •История операционных систем.
- •Классификация современных ос. Задачи современных ос.
- •6. Понятие процесса – ключевое понятие ос.
- •8. Трансляторы: компиляторы и интерпретаторы.
- •9. Иерархия зу (запоминающих устройств).
- •10. Управление оперативной памятью (оп). Менеджер памяти; swapping; виртуальная память.
- •11. Модели организации виртуальной памяти.
- •12. История ос unix.
- •13. Общая архитектура unix. Основные подсистемы ядра.
- •14. Пользовательская среда unix.
- •Командный интерпретатор shell.
- •16. Система каталогов в oс unix. Управление с помощью команд языка Bourn shell.
- •17. Управление файлами с помощью команд языка Bourn shell. Перенаправление ввода/вывода.
- •19. Обработка аргументов командной строки. Переменные окружения.
- •20. Пользователь и группа. Права доступа к файлу.
- •21. Системные вызовы и функции стандартных библиотек. Обработка ошибок.
- •22.Структура программы на языке с. Параметры главной функции (пример).
- •23. Файловая система ос unix: монтирование, индексные дескрипторы, жесткие и символические ссылки, файлы устройств.
- •24.Системные вызовы для работы с файлами
- •25. Понятие «процесс» в ос unix. Контекст процесса; свойства процесса; состояние процесса.
- •26.Создание процессов и упр-е ими.
- •27. Запуск внешней программы
- •29.Общая классификация средств взаимодействия процессов в ос unix.
- •30.Иерархия процессов в ос unix. Понятие сеанса. Фоновые процессы.
- •31.Каналы – средства взаимодействия процессов. Неименованные каналы. Организация конвейера (пример программы).
- •33.Сигналы как средство взаимодействия процессов в ос unix. Диспозиция сигналов.
- •34.Ограничения для процесса в ос unix (по ресурсам). Связь со свойствами процесса.
- •36.Отображение файлов в виртуальное адресное пространство. Разделяемая память.
- •37. Взаимодействие процессов через псевдотерминал.
- •38. Недостатки потокового взаимодействия процессов. Средства System vipc. Пространство имен. Общие принципы работы со средствами System vipc.
- •39. Организация очереди сообщений в ос unix. Структура сообщения. Отправка и принятие сообщений.
- •40.Семафоры, как средство взаимодействия процессов System vipc. Понятие атомарной операции. Массив семафоров.
- •41.Разделяемая память, как средство взаимодействия процессов System vipc.
- •42.Взаимодействие по сети. Понятие протокола. Семейства адресации и типы взаимодействия. Создание сокета в ос unix.
- •45. Потоковые сокеты. Клиент – серверная модель.
- •46. Проблема очередности действий и ее решение.
- •47. Процессы-демоны. Система журнализации.
- •48. Загрузка и жизненный цикл в ос unix.
- •49. Взаимоисключения. Понятие критической секции. Устаревшие подходы к организации взаимного исключения.
- •50.Поддержка взаимоисключения на уровне ос. Мьютексы и семафоры (Дейкстры). Команда ассемблера tsl.
- •51.Проблема тупиков. Граф ожидания
- •52. Нити исполнения (pthreads) в ос unix. Мьютексы pthreads.
- •53.Графический интерфейс в ос unix. Базовые принципы построения x_window.
- •54.Файловая подсистема. Общая структура. Методы выделения дискового пространства. Управление дисковым пространством.
- •55.Файловая подсистема. Структура файловой системы на диске. Реализация директорий. Поиск в директории (хеширование).
- •56.Подсистема ввода/вывода. Схема взаимодействия подсистем ос. Понятие драйвера. Типы драйверов.
6. Понятие процесса – ключевое понятие ос.
Процессом называют программу в момент ее выполнения под управлением ОС. С каждым процессом связано его адресное пространство. Это список адресов в памяти от некоторого минимального до некоторого максимального, который процесс может прочесть и в который может писать. Адресное пространство содержит саму программу, данные к ней и ее стек. Со всяким процессом связывают состояние процесса. Это набор регистров, включая счетчик команд, указатель стека и др. аппаратные регистры + вся необходимая информация для запуска программы. С процессом связана информация о доступных ресурсах и полномочиях.
Во многих ОС вся информация о процессах хранится в таблице ОС, которая наз. таблицей процессов. Таблица представляет собой массив или связанный список структур типа запись. По одной структуре на каждый существующий в данный момент процесс. Т.о. приостановленный процесс состоит из собственного адресного пространства, которое называют образом памяти, и компонентов таблицы процессов. Главные системные вызовы по управлению процессами – вызовы, связанные с созданием и окончанием процесса.
Если процесс может создавать другие процессы, называемые дочерними, а те в свою очередь новые дочерние, то имеем дерево процессов.
Связанные процессы – те, которые объединены для выполнения некоторой задачи, и они обмениваются данными, т.е. процессам надо уметь синхронизировать свою деятельность Такая связь называется межпроцессорным взаимодействием.
Модели программирования Windows и UNIX.
1. Программы Unix состоят из кода, который выполняет те или иные действия, обращаясь к системе с системными запросами для предоставления конкретных услуг. В противоположность этому программы Windows приводятся в действие событиями: основной модуль программы ждет, когда произойдет какое-нибудь событие, затем вызывает процедуру для его обработки. Затем обработчики переписывают содержимое экрана и внутренне состояние программы.
2. В Unix вызовы один к одному идентичны библиотечным процедурам. В стандарте POSIX порядка 100 системных вызовов. В windows фактические системные вызовы и запускаемые для их выполнения библиотечные вызовы полностью разделены. Microsoft определила набор процедур Win32 API. Программисты должны использовать его для вызова служб ОС. Этот интерфейс частично поддерживается всеми версиями windows, начиная с win95. Отделяя интерфейс от фактических системных вызовов, Microsoft поддерживает возможность изменения со временем действительных системных вызовов, не делая при этом недействующими существующие программы. В win32 API тысячи системных вызовов. Причем существенное число их работает полностью в пространстве пользователя. В Unix нет системных вызовов, работающих в пространстве пользователя.
3. В Unix графический интерфейс пользователя XWindow запускается целиком в пространстве пользователя (отделен от ядра). Поэтому для вывода на экран достаточно вызова write, обращение не является системным. В windows графическая подсистема загружается в режиме ядра, следовательно, все вызовы для управления окнами, геометрия, пакеты и т.д. - системные вызовы, т.е. через прерывания.
4. Win32 не является полностью единообразным и последовательным интерфейсом, т.к. существует необходимость обратной совместимости с более ранним 16р. интерфейсом.