Файл: Debian Таненбаум Бос.pdf

ВУЗ: Не указан

Категория: Книга

Дисциплина: Операционные системы

Добавлен: 29.10.2018

Просмотров: 48002

Скачиваний: 190

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

106  

 Глава 1. Введение 

нужно было выбрать для них разные сокращения — для милли- используется «м», 
а для микро- — «мк».

Таблица 1.4. Основные метрические префиксы

По-

ка-

за-

тель

Развернутый вид

Пре-

фикс

По-

ка-

за-

тель

Развернутый вид

Пре-

фикс

10

–3

0,001

милли

10

3

1000

Кило

10

–6

0,000001

микро

10

6

1 000 000

Мега

10

–9

0,000000001

нано

10

9

1 000 000 000

Гига

10

–12

0,000000000001

пико

10

12

1 000 000 000 000

Тера

10

–15

0,000000000000001

фемто 10

15

1 000 000 000 000 000

Пета

10

–18

0,000000000000000001

атто

10

18

1 000 000 000 000 000 000

Экса

10

–21

0,000000000000000000001

зепто

10

21

1 000 000 000 000 000 000 000

Зетта

10

–24

0,000000000000000000000001 йокто

10

24

1000 000 000 000 000 000 000 000

Йотта

Следует отметить, что при измерении объемов памяти в компьютерной промышлен-
ности принято использовать единицы измерения, значения которых несколько от-
личаются от общепринятых. Кило означает 2

10

 (1024), а не 10

3

 (1000), поскольку для 

измерения памяти всегда применяются степени числа 2

1

. Поэтому 1 Кбайт памяти со-

держит 1024 байта, а не 1000 байт. Точно так же 1 Мбайт содержит 2

20

 (1 048 576) байт, 

а 1 Гбайт — 2

30

 (1 073 741 824) байт. Но линия связи в 1 Кбит/с передает 1000 бит/с, 

а 10-мегабитная локальная сеть работает со скоростью 10 000 000 бит/с, поскольку 
эти скорости не измеряются в степенях числа 2. К сожалению, многие люди имеют 
склонность смешивать эти две системы, особенно при измерении емкостей дисковых 
накопителей. Для исключения неоднозначности в этой книге мы будем использовать 
обозначения «Кбайт», «Мбайт» и «Гбайт» для 2

10

, 2

20

 и 2

30

 соответственно, а «Кбит/с», 

«Мбит/с» и «Гбит/с» — для 10

3

, 10

6

 и 10

9

 бит/с соответственно.

1.12. Краткие выводы

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

1

 Если еще более точно, то для системы единиц на основе степеней числа 2 относительно не-

давно стандартизированы отдельные обозначения. Например, 210 (1024) байт обозначается 
как 1 KiB — 1 кибибайт. Однако на практике все еще сохраняется неопределенность в ис-
пользовании производных единиц измерения, поэтому в книге применяются соглашения, 
указанные автором. — Примеч. ред.


background image

Вопросы  

107

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

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

Базовыми понятиями, на которых строятся все операционные системы, являются про-
цессы, управление памятью, управление вводом-выводом данных, файловая система 
и безопасность. Все они будут рассмотрены в последующих главах.

Основой любой операционной системы является набор системных вызовов, которые 
она способна обработать. Они говорят о том, что реально делает операционная система. 
Мы рассмотрели четыре группы системных вызовов для UNIX. Первая из них от-
носилась к созданию и прекращению процессов. Вторая предназначалась для чтения 
и записи файлов. Третья группа служила для управления каталогами. Четвертая группа 
включала в себя системные вызовы различного назначения.

Операционные системы могут иметь различную структуру. Наиболее распространен-
ными являются монолитная система, многоуровневая система, микроядро, клиент-
серверная система, виртуальная машина и экзоядро.

Вопросы

1.  В чем заключаются две основные функции операционной системы?

2.  В разделе 1.4 были описаны девять различных типов операционных систем. При-

ведите перечень применений для каждой из этих систем (по одному для каждого 
типа операционной системы).

3.  В чем разница между системами с разделением времени и многозадачными си-

стемами?

4.  Для использования кэш-памяти основная память делится на кэш-строки, которые 

обычно имеют длину 32 или 64 байта. Кэшируется сразу вся кэш-строка. В чем 
преимущество кэширования всей строки перед побайтным или пословным кэ-
шированием?

5.  Каждая операция чтения или записи байта на самых первых компьютерах управ-

лялась центральным процессором (то есть без использования прямого доступа 
к памяти — DMA). Какие осложнения создавались тем самым для режима много-
задачности?

6.  Инструкции, касающиеся доступа к устройствам ввода-вывода, обычно относятся 

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

7.  Идея создания семейства компьютеров была представлена в 60-х годах прошлого 

века с появлением мейнфреймов серии IBM System/360. Жива ли эта идея сейчас?


background image

108  

 Глава 1. Введение 

8.  Одной из причин того, что графический пользовательский интерфейс приживался 

довольно медленно, была стоимость оборудования, необходимого для его поддерж-
ки. Какой объем видеопамяти необходим для поддержки изображения на экране 
в монохромном текстовом режиме, имеющем 25 строк из 80 символов? А какой 
объем необходим для поддержки растрового изображения 1200 × 900 пикселов 
при глубине цвета 24 бита? Какова была стоимость необходимого для них ОЗУ 
в 1980 году (при цене $5 за килобайт)? Какова эта стоимость в настоящее время?

9.  При создании операционных систем одновременно решаются задачи, например, 

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

10.  В чем разница между режимом ядра и пользовательским режимом? Объясните, 

как сочетание двух отдельных режимов помогает в проектировании операционных 
систем.

11.  У диска объемом 255 Гбайт имеется 65 536 цилиндров с 255 секторами на каждой 

дорожке и с 512 байтами в каждом секторе. Сколько пластин и головок у этого 
диска? Предполагая, что среднее время поиска цилиндра составляет 11 мс, среднее 
время ожидания подхода рабочего сектора к головке — 7 мс, а скорость считы-
вания — 100 Мбит/с, вычислите среднее время, необходимое для считывания 
400 Кбайт из одного сектора.

12.  Выполнение какой из следующих команд должно быть разрешено только в режиме 

ядра:

а)  блокировка всех прерываний;

б)  чтение показаний даты и времени внутренних часов;

в)  установка показаний даты и времени внутренних часов;

г)  изменение схемы распределения памяти?

13.  Рассмотрим систему, имеющую два центральных процессора, у каждого из которых 

есть два потока (работающих в режиме гипертрейдинга). Предположим, есть три 
запущенные программы: P0, P1 и P2 со временем работы 5, 10 и 20 мс соответ-
ственно. Сколько времени займет полное выполнение этих программ? Следует 
принять во внимание, что все три программы загружают центральный процессор 
на 100 %, не осуществляют блокировку во время выполнения и не меняют цен-
тральный процессор, назначенный для их выполнения.

14.  Компьютер обладает четырехступенчатым конвейером, и все ступени выполняют 

свою работу за одно и то же время — 1 нс. Сколько инструкций в секунду сможет 
выполнить эта машина?

15.  Рассмотрим компьютерную систему, имеющую кэш-память, ОЗУ и диск, а также 

операционную систему, использующую виртуальную память. Время доступа к сло-
ву из кэш-памяти занимает 1 нс, из ОЗУ — 10 нс, с диска — 10 мс. Если показатель 
успешного поиска в кэш-памяти составляет 95 %, в ОЗУ (после неудачного поиска 
в кэш-памяти) — 99 %, каким будет среднее время доступа к слову?

16.  Когда пользовательская программа осуществляет системный вызов для чте-

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


background image

Вопросы  

109

щий драйвер. Предположим, что драйвер запускает диск и приостанавливает свою 
работу до тех пор, пока не возникнет прерывание. Очевидно, что в случае чтения 
данных с диска вызывающая программа будет заблокирована (поскольку для нее 
нет данных). А что произойдет в случае записи данных на диск? Нужно ли блоки-
ровать вызывающую программу в ожидании завершения переноса данных на диск?

17. Что означает команда trap? Объясните ее использование в операционных систе-

мах.

18.  Почему в системах разделения времени необходима таблица процессов? Нужна 

ли она в операционных системах персональных компьютеров, работающих под 
управлением UNIX или Windows при единственном пользователе?

19.  Есть ли какие-либо причины, по которым вам может понадобиться подключить 

файловую систему к непустому каталогу? И если есть, то какие?

20.  Для каждого из следующих системных вызовов назовите условия, при которых 

возникает ошибка: forkexec и unlink.

21.  Какой тип мультиплексирования (во времени, в пространстве или сразу и в том 

и в другом) может быть применен для совместного использования следующих 
ресурсов: ЦП, памяти, диска, сетевой карты, принтера, клавиатуры и дисплея?

22.  Может ли вызов

    count = write(fd, buffer, nbytes);

вернуть в переменной count значение, отличное от значения nbytes? Если да, то 
почему?

23.  Файл, дескриптором которого является fd, содержит следующую последователь-

ность байтов: 3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5. Выполняется следующий системный вызов:

    lseek(fd, 3, SEEK_SET);
    read(fd, &buffer, 4);

где вызов lseek перемещает указатель на третий байт файла. Что будет содержать 
буфер, когда завершится работа вызова read?

24.  Предположим, что файл объемом 10 Мбайт хранится на диске на одной и той же 

дорожке (с номером 50) в последовательных секторах. Блок головок диска рас-
положен над дорожкой с номером 100. Сколько времени займет извлечение этого 
файла с диска? Предположим, что время перемещения блока головок на один 
цилиндр занимает около 1 мс, а на попадание под головку того сектора, с которого 
начинается сохраненный файл, уходит около 5 мс. Также предположим, что чтение 
осуществляется со скоростью 200 Мбайт/с.

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

и символьным специальным файлом?

26.  В примере, приведенном на рис. 1.17, библиотечная процедура называется read

и сам системный вызов — read. Так ли это важно, чтобы их имена совпадали? Если 
нет, то какое из имен важнее?

27. В 

современных операционных системах адресное пространство процесса отделено 

от физической памяти машины. Назовите два преимущества такой конструкции.

28.  С точки зрения программиста, системный вызов похож на вызов любой другой 

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


background image

110  

 Глава 1. Введение 

процедур в результате приводит к системным вызовам? Если да, то при каких 
обстоятельствах и почему?

29.  В табл. 1.2 показано, что ряд системных вызовов UNIX не имеют эквивалентов 

в Win32 API. Каковы последствия для программиста перевода программы UNIX 
для запуска под Windows (для каждого из вызовов, помеченных как не имеющие 
эквивалента)?

30.  Переносимая операционная система может быть перенесена с одной системной 

архитектуры на другую без каких-либо модификаций. Объясните, почему невоз-
можно создать операционную систему, обладающую полной переносимостью. 
Опишите два верхних уровня, которые будут задействованы при проектировании 
операционной системы с высокой степенью переносимости.

31.  Объясните, как разделение политики и механизма помогает в создании операци-

онных систем, основанных на микроядрах.

32.  Виртуальные машины приобрели высокую популярность по различным причинам. 

И тем не менее у них имеется ряд недостатков. Назовите хотя бы один из них.

33.  Ответьте на следующие вопросы по переводу одних единиц измерения в другие:

1) Сколько секунд длится наногод?

2) Микрометры часто называют микронами. Какова длина мегамикрона?

3) Сколько байтов содержится в 1 Пбайт памяти?

4)  Масса Земли составляет 6000 Йг (йоттаграммов). Сколько это будет в кило-

граммах?

34.  Напишите оболочку, похожую на представленную в листинге 1.1, но содержащую 

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

35.  Если у вас есть персональная UNIX-подобная система (Linux, MINIX, FreeBSD 

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

sync

, чтобы сбросить на диск содержимое 

буферов файловой системы во избежание ее краха.

Примечание

: не пытайтесь сделать это на системе с разделением времени (систе-

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

36.  Исследуйте и попытайтесь объяснить содержимое каталогов в системах семейства 

UNIX или Windows c помощью программы 

od

 системы UNIX или программы 

DEBUG

 MS-DOS. 

Совет

: способ выполнения задания зависит от того, что позволит сделать опера-

ционная система. Может сработать следующая хитрость: нужно создать каталог 
на USB-накопителе с использованием одной операционной системы, а затем 
считать исходные дисковые данные, используя другую операционную систему, 
допускающую подобный доступ.