Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы ОС.docx
Скачиваний:
44
Добавлен:
22.09.2019
Размер:
3.18 Mб
Скачать

2. Системные вызовы. (Лекция 1)

Системный вызов (system call) – обращение прикладной программы к ядру ОС для выполнения какой-либо операции (обеспечивает доступ со стороны приложений к возможностям ОС).

В ходе вызова вызывающий процесс обычно передает данные ядру, при этом происходит переключение режимов.

Однако в UNIX и Windows модель вызовов отличается.

UNIX напрямую вызывает системную функцию (1,2). Вызов упаковывается, управление передается системе (3, 4). Ядро определяет параметры вызова и делает внутренний вызов (5). Результат возвращается (6, 7).

В Windows приложение не может вызвать функции системы (native API). Вызов (1,2) поступает подсистеме окружения (3). Если необходимо вызвать функцию ядра, модуль Ntdll.dll определяет порядок передачи управления ядру (4). Ядро делает внутренний вызов и возвращает результат.

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

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

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

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

3. Аппаратные особенности выполнения программ. (Лекция 1)

Центральный процессор – главная часть аппаратного обеспечения компьютера.

PC (Program counter) – счетчик команд

PSW (Processor Status Word) – слово состояния процессора (регистр или набор регистров)

SP (Stack Pointer) – указатель стека

Типы команд ЦПУ:

- Обработка данных и переходы

- Процессор ↔ память

- Процессор ↔ устройство ввода-вывода

Кэширование ОЗУ (caching) – использование ОЗУ малой емкости с малым временем доступа для ускорения работы с основным ОЗУ, имеющим большое время доступа.

Проблемы использования ОЗУ:

- распределение ОЗУ;

- переключение контекста процессов (заполнение кэша, регистры управления памятью)

Распределение памяти – управление физической памятью и виртуальной памятью процессов.

Устройства ввода/вывода (Input/Output devices) обычно состоят из контроллера и самого устройства (группы устройств).

Контроллер (controller) непосредственно реализует сложные алгоритмы управления устройствами, предоставляя аппаратный интерфейс для ЦПУ и других контроллеров.

Драйвер (driver) – специал-ая программа, управляющая устройствами с помощью контроллера и скрывающая специфику устр-ва.

Методы работы с устройствами ввода/вывода:

- программируемый ввод/вывод (активное ожидание, ожидание готовности);

- использование прерываний (interrupts);

- прямой доступ к памяти (DMADirect Memory Access).

Цель методов – повышение эффективности использования времени процессора.