- •Операционные системы для программиста
- •Введение
- •1. Основные понятия
- •1.1. Понятие операционной системы
- •1.2. Системные соглашения для доступа к функциям ос
- •1.3. Особенности разработки программ в базовых ос
- •1.4. Командный интерфейс пользователя в ос
- •1.5. Информация об ошибках системной функции
- •2. Программный доступ к файловой системе
- •2.1. Понятия дескрипторов, идентификаторов и хэндлов
- •2.2. Ввод и вывод в стандартные файлы.
- •2.3. Базовые средства использования файлов
- •2.4. Многопользовательская блокировка файлов
- •2.5. Установка произвольной позиции в файле
- •3. Принципы построения ос
- •3.1. Модульная структура построения ос
- •3.2. Использование прерываний в ос
- •3.3. Управление системными ресурсами
- •3.4 Строение ядра операционной системы
- •3.5. Структура операционной системы типа Windows nt
- •4. Многофункциональный консольный вывод
- •4.1. Функции управления курсором
- •4.2. Многократный вывод символов и атрибутов
- •4.3. Вывод в произвольную позицию экрана
- •4.4. Ввод данных, размещенных предварительно на экране
- •5. Системные функции ввода для консольных устройств
- •5.1. Системные функции ввода текстовых строк
- •5.2. Событийно-управляемый ввод
- •5.3. Системные функции ввода с клавиатуры
- •5.4. Опрос ввода с клавиатуры в программе
- •5.5. Системные функции мыши для текстового режима
- •6. Файловые системы
- •6.1. Структуры файловых систем для пользователя
- •6.2. Методы распределения внешней памяти
- •6.3. Принципы построения файловых систем типа fat
- •6.4. Современные модификации файловой системы fat
- •6.5. Особенности построения файловой системы hpfs
- •6.6. Принципы построения файловой системы ntfs
- •6.7. Особенности строения файловых систем для Unix
- •6.8. Программный опрос файловой системы
- •7. Обеспечение множественности процессов
- •7.1. Основные понятия теории вычислительных процессов
- •7.2. Программное порождение процессов
- •7.3. Уничтожение процессов
- •7.4. Ожидание завершения процессов
- •8. Многопоточное функционирование ос
- •8.1. Понятие нити и связь Хе с процессом
- •8.2. Создание нитей (thread) в программе
- •8.3. Уничтожение нитей
- •8.4. Приостановка и повторный запуск нити
- •8.5. Ожидание завершения нити
- •9. Средства взаимодействия программных единиц
- •9.1. Абстрактные критические секции
- •9.2. Абстрактные семафоры
- •9.3. Семафоры взаимоисключения
- •9.4. Семафоры событий
- •9.5. Средства группового ожидания
- •9.6. Программные критические секции
- •9.7. Программные семафоры с внутренним счетчиком
- •10. Управление памятью
- •10.1. Виртуальная память
- •10.2. ЏодкРчка страниц для реализациШ виртуальной памяти
- •10.3. Системные функции распределения памяти
- •10.4. Совместное использование памяти
- •10.5. Отображение файлов в оперативную память
- •10.6. Динамически распределяемая память
- •11. Средства коммуникации процессов
- •11.1. Неименованные коммуникационные каналы Unix
- •11.2. Переназначение хэндлов для доступа к каналу
- •11.3. Неименованные каналы в Windows
- •11.4. Именованные каналы в Windows nt
- •11.5. Именованные каналы в Unix
- •12. Взаимодействие пользователя с ос
- •12.1. Интерфейсы операционных систем
- •12.2. Командные и операционные оболочки (shells)
- •12.3. Основные команды базовых операционных систем
- •12.4. Групповое выполнение и фоновый запуск команд
- •12.5. Стандартный ввод-вывод и конвейеры командной строки
- •12.6. Командные файлы и сценарии
- •Библиографический список
1. Основные понятия
1.1. Понятие операционной системы
Операционной системой (ОС) называют комплекс программ, обеспечивающих взаимодействие прикладных программ и пользователей с аппаратурой компьютера. Аппаратура современных компьютеров настолько сложна и многофункциональна, что управление ею непосредственно из прикладной программы катастрофически сложная задача. Не касаясь малопонятных в начальном знакомстве проблем, можно отметить сложность программного управления современными внешними устройствами. Это управление требует понимания действий десятков управляющих кодов отдельного устройства. В конечном счете требует глубокого понимания функционирования сложного электронного или электромеханического устройства. Ясно, что решение соответствующих задач управления прикладному программисту и пользователю приходится перекладывать на разработчика операционной системы.
Среди многообразия функций операционной системы можно выделить главные:
1) обслуживание информации, хранимой в компьютере;
2) программное управление устройствами компьютера;
3) обеспечение простого информационного диалога компонентов ОС с пользователем или прикладной программой;
4) обеспечение эффективного использования вычислительной системы путем совместного задействования общих ресурсов или одновременного выполнения нескольких прикладных программ.
По причине небольшого числа используемых операционных систем классификация ОС основана на наличии или отсутствии существенных особенностей из небольшого набора последних.
По возможности обеспечивать одновременную работу многих пользователей различают однопользовательские и многопользовательские ОС. По способности выполнять одновременно более одной задачи их классифицируют как многозадачные или однозадачные. По числу процессоров, управляемых ОС, различают однопроцессорные и многопроцессорные. Относительно числа отдельных компьютеров ранее различали одномашинные и многомашинные ОС. К настоящему времени термин многомашинные ближе всего по значению к признаку сетевые ОС, хотя исторически и не совпадает с ним. Кроме того, различают аппаратно зависимые, в более позднем обозначении зависимые от платформы операционные системы, и мобильные ОС. Наиболее общим делением является разбиение на универсальные и специализированные. Последние по существу почти полностью совпадают с управляющими ОС. Основной задачей управляющих является обслуживание аппаратных и технологических комплексов в автоматическом режиме. Поэтому характерными особенностями таких ОС является включение в них средств, обеспечивающих особо высокую надежность функционирования и быстроту реакции на отдельные виды внешних событий, воздействующих на вычислительную аппаратуру электрическими сигналами специального назначения. Конструирование управляющих ОС является предметом особого внимания разработчиков современного технологического оборудования, военной и космической техники.
До недавнего времени ОС по типу используемого в них интерфейса с пользователем разделяли на текстовые и графические. К настоящему времени все современные ОС включают графический интерфейс либо как основной (в системах фирмы Microsoft), либо как дополнительную интерфейсную оболочку (в системах Unix).
