Операционные системы. Часть I. Построение и функционирование операционных систем. Учебное пособие [А. С. Деревянко] (pdf) читать постранично, страница - 2

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

написано по
материалам курсов "Системное программное обеспечение" и "Системное
программирование и операционные системы", читаемых студентам
направлений "Компьютерные науки" и "Компьютерная инженерия"
Национального

политехнического

университета

"ХПИ",

а

также

слушателям Межотраслевого института повышения квалификации при
НТУ "ХПИ". Изложение этих курсов сопровождается неизменным
интересом слушателей и неизменной нехваткой учебной литературы. Дело
в том, что курсы базируются на общих концепциях, сложившихся в начале
70-х годов. Произошедшая в середине 80-х "персональная революция"
создала ошибочное впечатление об устарелости этих концепций и
обусловила перерыв в издании учебной литературы, рассматривающей их.
Так, последнее известное нам "раннее" издание такого рода на русском
языке

датировано

1989

годом

[26].

Однако

последующее

совершенствование средств вычислительной техники и ее программного
обеспечения показало, что эти концепции отнюдь не устарели, но
продолжают применяться и развиваться. Старые издания не могут
удовлетворить растущего интереса студентов и специалистов к этой теме,
во-первых, потому, что они уже стали библиографической редкостью, а вовторых, потому, что в них, естественно, не рассматриваются современные
версии ОС и те (пусть и немногие) новые концепции, которые появились в
последние годы. Два же известных нам современных издания [7, 22]
посвящены рассматриваемой нами теме лишь отчасти, содержат далеко не
полные обзоры и также не могут удовлетворить спрос в полной мере. Мы
6

надеемся, что предлагаемое издание в какой-то мере уменьшит этот
информационный дефицит.
В первой части данного учебного пособия мы не привязываемся к
какой-либо конкретной ОС, рассматривая лишь общие принципы
построения и функционирования ОС. Вторая же часть посвящена тому, как
рассмотренные принципы реализованы в конкретных современных
системах.
Системные вызовы мы по возможности именовали в соответствии с
традициями, сложившимися в ОС Unix и зафиксированными в стандарте
POSIX, однако, с легкостью отступали от этих традиций там, где это нам
представлялось необходимым. В описании алгоритмов и данных мы
ориентировались на язык программирования C, однако, опять-таки
отступали от синтаксических правил языка там, где строгое следование им
вело, по нашему мнению, к излишней конкретизации.
В тексте книги шрифтом Courier New выделены фрагменты,
представляющие

собой

лексические

конструкции

языков

программирования или командных языков и элементы формальной
математической записи.
Авторы посвящают эту работу памяти своего друга и коллеги
почетного доктора НТУ "ХПИ" Хартмуда Штира (IBM development
Laboratory, Boblingen, Germany).

7

Глава 1. Основные понятия
1.1. Операционная система с точки зрения системного
программиста

Операционная система (ОС) есть набор программ, которые
распределяют ресурсы процессам.
Приведенная выше формулировка является ключевой для понимания
всего курса. Прежде, чем мы ее раскроем, дадим определение входящих в
нее терминов. Ресурс – "средство системы обработки данных, которое
может быть выделено процессу обработки данных на определенный
интервал времени" [8]. Иными словами: ресурс – это все те аппаратные и
программные средства и данные, которые необходимы для выполнения
программы. Ресурсы можно подразделить на первичные и вторичные. К
первой

группе

относятся

те

ресурсы,

которые

обеспечиваются

аппаратными средствами, например: процессор, память – оперативная и
внешняя, устройства и каналы ввода-вывода и т.п.; ко второй – ресурсы,
порождаемые ОС, например, системные коды и структуры данных, файлы,
семафоры, очереди и т.п. В последнее время в связи с развитием
распределенных вычислений и распределенного хранения данных все
большее значение приобретают такие ресурсы как данные и сообщения.
В [12] приведено около десяти определений термина "процесс", из
которых автор выбирает: "программа в стадии выполнения". Это
определение близко к тому, что интуитивно понимают под "процессом"
программисты, но оно не является строгим. Более строгое определение

8

процесса, которое дает терминологический стандарт, представляется нам
гораздо более удачным, поэтому ниже мы приводим его полностью.
"Процесс обработки данных – система действий, реализующая
определенную функцию в системе обработки информации и оформленная
так, что управляющая программа данной системы может перераспределять
ресурсы этой системы в целях обеспечения мультипрограммирования.
Примечания:
1.

Процесс характеризуется состояниями, которые определяются

наличием тех
следовательно,

или

иных

ресурсов в