Смекни!
smekni.com

Операционные системы 5 (стр. 1 из 43)

Содержание

1. Введение. 5

1.1. Предмет и задачи курса. 5

1.2. Рекомендации по литературе. 5

1.3. Краткий очерк истории ОС.. 6

1.4. Классификация ОС.. 10

1.5. Критерии оценки ОС.. 11

1.6. Основные функции и структура ОС.. 14

1.7. ОС, используемые в дальнейшем изложении. 14

2. Управление устройствами. 14

2.1. Основные задачи управления устройствами. 14

2.2. Классификация периферийных устройств и их архитектура. 14

2.3. Прерывания. 14

2.4. Архитектура подсистемы ввода/вывода. 14

2.5. Способы организации ввода/вывода. 14

2.6. Буферизация и кэширование. 14

2.7. Драйверы устройств. 14

2.8. Управление устройствами в MS-DOS. 14

2.9. Управление устройствами в Windows. 14

2.10. Управление устройствами в UNIX.. 14

3. Управление данными. 14

3.1. Основные задачи управления данными. 14

3.2. Характеристики файлов и архитектура файловых систем.. 14

3.3. Размещение файлов. 14

3.4. Защита данных. 14

3.5. Разделение файлов между процессами. 14

3.6. Файловая система FAT и управление данными в MS-DOS. 14

3.7. Файловые системы и управление данными в UNIX.. 14

3.8. Файловая система NTFS и управление данными в Windows. 14

4. УПРАВЛЕНИЕ ПРОЦЕССАМИ.. 14

4.1. Основные задачи управления процессами. 14

4.2. Реализация многозадачного режима. 14

4.3. Проблемы взаимодействия процессов. 14

4.4. Управление процессами в MS-DOS. 14

4.5. Управление процессами в Windows. 14

4.6. Управление процессами в UNIX.. 14

5. УПРАВЛЕНИЕ ПАМЯТЬЮ... 14

5.1. Основные задачи управления памятью.. 14

5.2. Виртуальные и физические адреса. 14

5.3. Распределение памяти без использования виртуальных адресов. 14

5.4. Сегментная организация памяти. 14

5.5. Страничная организация памяти. 14

5.6. Сравнение сегментной и страничной организации. 14

5.7. Управление памятью в MS-DOS. 14

5.8. Управление памятью в Windows. 14

5.9. Управление памятью в UNIX.. 14

6. Литература. 14


1. Введение

1.1. Предмет и задачи курса

Предметом изучения в данном курсе являются операционные системы (ОС) современных компьютеров.

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

· организации эффективной работы аппаратуры компьютера;

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

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

· основные принципы построения ОС, наиболее распространенные алгоритмы выполнения различных функций ОС, типовые структуры данных, используемые для обеспечения работы ОС;

· практическое воплощение этих принципов, алгоритмов, структур в наиболее распространенных современных ОС.

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

1.2. Рекомендации по литературе

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

Из книг общего характера учебник /1/ более всего соответствует данному курсу, как по содержанию, так и в еще большей степени по общему взгляду на предмет. Эту книгу можно найти и в Сети, а также в локальной сети кафедры.

Похвалы и уважения заслуживает книга /2/ - огромный по объему и достаточно простой по изложению обзор всего важного об ОС.

Достаточно хороша также книга /3/, используемая как основной учебник по ОС во многих американских университетах.

Лентяям пригодится книга /4/, в которой, наряду с другими вопросами системного программирования, кратко и довольно толково изложены основные проблемы ОС. Правда, книга старовата.

Книги /5/ и /6/ содержат много полезного по практическим вопросам проектирования ОС, а /7/ остается хорошим источником по теоретическим и алгоритмическим вопросам.

Из литературы по Windows следует прежде всего рекомендовать классическую книгу /8/, которая делает понятными многие вопросы, трудно перевариваемые по официальной документации. Более глубокий разбор того, «как это сделано в Windows», можно найти в книге /9/. К сожалению, эта книга заметно уступает замечательной, но устаревшей по материалу книге того же автора /10/, которую, тем не менее, полезно прочесть тем, кого интересуют вопросы практической реализации ОС.

На фоне неисчислимых и неотличимых друг от друга пользовательских руководств по UNIX следует выделить достаточно серьезную работу /11/. Не потеряла интереса старенькая, тонкая книжка /12/, в которой содержится много полезного об основных структурах данных и алгоритмах UNIX. Намного подробнее те же вопросы рассмотрены в другой старой книге, которая давно приобрела известность в электронном варианте /13/. Бумажное издание этой книги на русском языке существует только в пиратском варианте, без указания имени автора.

Для тех, кого еще интересует MS-DOS, можно порекомендовать /14/, это одна из лучших книг на данную тему.

Некоторые алгоритмы, используемые при реализации различных ОС, хорошо изложены в классической книге /15/.

Большие коллекции литературы и документации по ОС имеются в Интернете. Среди русскоязычных сайтов можно рекомендовать, например, /16, 17, 18, 19, 20/.

Знание английского языка открывает доступ к морю свежей информации в Интернете. Огромная куча сведений по Windows содержится в /21/. На сайте /22/ можно найти интересные статьи по отдельным вопросам архитектуры Windows, а также скачать ряд полезных утилит. Из большого числа сайтов, посвященных UNIX и Linux, можно назвать, например, /23/ и /24/. На сайте /25/ можно найти много статей и книг по актуальным вопросам программирования, в том числе по ОС.

1.3. Краткий очерк истории ОС

Изучение истории развития ОС показывает, что все существенные продвижения в области архитектуры ОС связаны с влиянием двух основных факторов:

· прогресс технологии, приводящий к быстрому возрастанию характеристик аппаратуры ЭВМ и к появлению принципиально новых типов аппаратуры;

· принципиально новые идеи, возникающие у проектировщиков.

Не ввязываясь в давний спор материалистов с идеалистами, в данном частном случае приходится признать, что первый, материальный фактор определял развитие ОС на 80 – 90%. Такие технологические прорывы, как изобретение магнитных дисков, микропроцессоров, создание высококачественных видеомониторов, настоятельно требовали радикальных изменений в технологии работы с компьютером, и вследствие этого обуславливали создание принципиально новых типов ОС или их отдельных подсистем. С другой стороны, некоторые идеи в области организации вычислительного процесса и интерфейса дали серьезный толчок совершенствованию архитектуры компьютеров.

Не зная хотя бы в общих чертах основных этапов развития аппаратного и программного обеспечения, трудно понять многие особенности современных ОС.

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

1.3.1. Предыстория ОС

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

Типичный компьютер первого – второго поколений представлял собой большую комнату, уставленную шкафами и увитую кабелями. Каждое из основных устройств – центральный процессор, оперативная память, накопители на магнитных лентах, устройства ввода с перфокарт, принтер – занимало один или несколько «шкафов» или «тумб», наполненных радиолампами и механическими частями.

Все это стоило больших денег, потребляло бешеное количество электроэнергии[1] и регулярно ломалось.

В таких условиях машинное время стоило очень дорого. Тем не менее, обычная практика использования ЭВМ не способствовала экономии. Как правило, программист, разрабатывающий программу, заказывал ежедневно несколько часов машинного времени и в течение этого времени монопольно использовал машину. Выполнив очередной запуск отлаживаемой программы (которую надо было каждый раз вводить либо с клавиатуры, либо, в лучшем случае, с перфокарт), пользователь получал распечатку (чаще всего в виде массива цифр), анализировал результаты, вносил изменения в программу и снова запускал ее. Таким образом, в ходе сеанса отладки дорогостоящее оборудование простаивало 99% времени, пока программист осмысливал результаты и работал с устройствами ввода/вывода. Кроме того, сбой при вводе одной перфокарты мог потребовать начать сначала всю работу программы.