
- •8.Буферизация данных при обмене информацией между процессами
- •9.Логическая организация механизма передачи информации
- •10.Алгоритмы планирования (Дисциплины диспетчеризации)
- •11.Аппаратные средства поддержки многозадачности.
- •12.Связь прикладного процесса с ядром ос.
- •13.Процесс – интерпретатор команд.
- •14.Реализация процедуры диспетчера процессов.
- •15.Реализация вытесняющей многозадачности.
- •16.Реализация кооперативной многозадачности.
- •17.Реализация карусельной многозадачности.
- •18.Адресация операндов в машинных командах.
- •19.Машинная команда и ее формат.
- •20.Методы адресации памяти
- •21.Вызовы, возвраты и определение подпрограмм
- •22.Основные сведения об организации подпрограмм
- •23.Директивы определения данных.
- •24.Структура программы на ассемблере.
- •25.Процедура компиляции, компоновки и отладки программ.
- •26.Общие сведения о языке ассемблера
7.Поток ввода/вывода и сообщения
Существует две модели передачи данных по каналам связи — поток ввода-вывода и сообщения. Стандартные потоки ввода-вывода в системах типа UNIX (и некоторых других) — потоки процесса, имеющие номер (дескриптор), зарезервированный для выполнения некоторых «стандартных» функций. Как правило (хотя и не обязательно), эти дескрипторы открыты уже в момент запуска задачи (исполняемого файла).
При передаче данных с помощью потоковой модели, операции передачи/приема информации вообще не интересуются содержимым данных. Процесс, прочитавший 100 байт из линии связи, не знает и не может знать, были ли они переданы одновременно, т. е. одним куском, или порциями по 20 байт, пришли они от одного процесса или от разных процессов. Данные представляют собой простой поток байт, без какой-либо их интерпретации со стороны системы. Примерами потоковых каналов связи могут служить pipe и FIFO.
8.Буферизация данных при обмене информацией между процессами
Обмен информацией с файлом может быть непосредственным или буферизованным.
Непосредственный обмен подразумевает прямое чтение информации с диска и запись ее обратно на диск, и эффективен в том случае, когда обмен с файлом идет большими (несколько килобайт или больше) блоками данных, размеры которых кратны размеру сектора диска (обычно 512 байтов), и сами блоки начинаются также на границе сектора. При обмене мелкими (несколько десятков или сотен байтов), или некратными сектору блоками резко возрастают накладные расходы.
При буферизованном обмене между приложением и файлом находится так называемый буфер файла. При чтении из файла вначале неявно считывается полный буфер, а последующие функции чтения выбирают нужные порции данных из буфера, не обращаясь при этом к диску. При записи все работает наоборот: функции записи вначале заполняют буфер, а затем полностью записанный буфер неявно переносится в файл одной операцией записи.
Строго говоря, в MMIO даже непосредственный обмен с файлом включает простую скрытую буферизацию в самой подсистеме, так как минимальной единицей обмена данными с диском является сектор.
9.Логическая организация механизма передачи информации
10.Алгоритмы планирования (Дисциплины диспетчеризации)
Диспетчеризация связана с понятием задачи (потока). Если ОС не поддерживает механизма потоков, то понятие задачи можно заменить на понятие процесса.
Известно большое количество правил, в соответствии с которыми формируется очередь (список) готовых к выполнению задач.
Имеются два больших класса дисциплин обслуживания:
- бесприоритетные:
- приоритетные.
Бесприоритетные дисциплины обслуживания делятся на следующие:
- линейные:
в порядке очереди;
случайный выбор процесса;
- циклический:
циклический алгоритм;
многоприоритетный циклический алгоритм.
Приоритетные дисциплины обслуживания делятся на следующие:
- с фиксированным приоритетом:
с относительным приоритетом;
с абсолютным приоритетом;
адаптивное обслуживание;
приоритет зависит от времени ожидания;
- с динамическим приоритетом:
приоритет зависит от времени ожидания;
приоритет зависит от времени обслуживания.
Свойства приоритетов:
- приоритет, присвоенный задаче, может являться величиной постоянной;
- приоритет задачи может изменяться в процессе ее решения.
Самой простой в реализации является дисциплина FCFS (first come – first served), задачи обслуживаются в порядке очереди. Задачи, приостановленные для ожидания какого-либо ресурса, после перехода в состояние готовности становятся в эту очередь перед задачами, которые еще не выполнялись.
Образуются две очереди:
- новые задачи;
- ранее выполнявшиеся, но попавшие в состояние ожидания.
11.Аппаратные средства поддержки многозадачности.
Многозадачность (multitasking) – это способность операционной системы выполнять несколько программ одновременно.
По числу одновременно выполняемых задач операционные системы могут быть разделены на два класса:
однозадачные (например, MS-DOS, MSX) и
многозадачные (OC EC, OS/2, UNIX, Windows 95).
Однозадачные ОС в основном выполняют функцию предоставления пользователю виртуальной машины, делая более простым и удобным процесс взаимодействия пользователя с компьютером. Однозадачные ОС включают средства управления периферийными устройствами, средства управления файлами, средства общения с пользователем.
Многозадачные ОС, кроме вышеперечисленных функций, управляют разделением совместно используемых ресурсов, таких как процессор, оперативная память, файлы и внешние устройства.