Смекни!
smekni.com

Разработка операционных систем (стр. 1 из 9)

Дагестанский государственный университет.

Математический факультет.

Кафедра информатики и вычислительной техники.

Дипломная работа

на тему

«Разработка

операционных систем».

Руководитель:

Ханикалов Х.Б.

Выполнил:

студент 5 к. 4 гр.

Атаян А.П.

Махачкала 2000 г.


План работы:

Введение.

1. Управление процессами.

1.1. Понятие Процесс. Состояния процесса.

1.2. Планирование процессов. Понятие очереди.

1.3. Взаимодействие процессов. Пользовательский уровень.

2. Планирование процессора.

2.1. Критерии планирования процессора.

2.2. Стратегии планирования процессора.

2.2.1.Первый пришел - первый обслуживается FIFO. First come - first served (FCFS).

2.2.2. Стратегия - наиболее короткая работа! SJF.

2.2.3. Приоритетное планирование.

2.2.4. “Карусельная” стратегия планирования. RR-Round Robin.

2.2.5. Планирование с использованием многоуровневой очереди.(Multilevel queue scheduling).

2.2.6. Программирование с использованием многоуровневой очереди с обратными связями (multilevel feedback queue sheduling).

3. Управление невиртуальной памятью.

3.1. Своппинг. (swapping).

3.2. Смежное размещение процессов.

3.2.1. Однопрограммный режим.

3.2.2 Мультипрограммный режим с фиксированными границами.

3.2.3. Мультипрограммирование с переменными разделами. (multiprogramming with a variable number of tasks (MVT).

3.2.4. Мультипрограммирование с переменными разделами и уплотнением памяти.

3.2.5. Основные стратегии заполнения свободного раздела.

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

3.3.1. Базовый метод.

3.3.2. Аппаратная поддержка страничной организации памяти.

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

3.4.1. Базовый метод сегментной организации памяти.

3.4.2. Разделение сегмента между несколькими процессами.

3.4.3. Фрагментация.

4. Управление виртуальной памятью.

4.1. Страничирование по запросу (demand paging).

4.2. Замещение страниц.

4.2.1. FIFO.

4.2.2. Оптимальный алгоритм.

4.2.3. LRU — алгоритм (least recently used).

5. Общие сведения.

5.1. Управление памятью.

5.2. Файловая система.

5.3. Управление процессами.

5.4. Межпроцессное взаимодействие.

5.5. Графический интерфейс пользователя.

5.6. Объектно-ориентированное ориентирование и операционные системы.

Заключение.


ВВЕДЕНИЕ.

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

На сегодняшний день на рынке программного обеспечения для IBM PC-совместимых компьютеров сосуществуют несколько семейств операционных систем. Однозадачные однопользовательские ОС MS-DOS и PC-DOS являются самыми распространенными ввиду своей простоты и ’неприхотливости’, большую роль здесь играет и то, что подавляющее большинство программ работает именно под их управлением. MS-DOS и PC-DOS характеризуются минимальным пользовательским и программным интерфейсами, в тоже время, работая со всевозможными программными оболочками, интегрированными средами (такими как Microsoft Windows или DESQview), создают комфортабельную среду для пользователя и программы.

ОС Microsoft Windows NT, ориентированная на работу в разнородных сетях, высоконадежна, однако, это достигнуто за счет частичной потери совместимости с MS-DOS.

Операционная система OS/2 стоит особняком: будучи полноправной многозадачной операционной системой со своим оригинальным графическим пользовательским и программным интерфейсами, она сохраняет совместимость с MS-DOS и PC-DOS (начиная с версии WARP 3.0 и с Microsoft Windows).

ОС UNIX - одна из старейших и наиболее простых операционных систем, изначально была рассчитана на разработку программ (для нее самой и не только) на мини-ЭВМ и позволяла без больших затрат труда программиста переносить программу из одной системы ЭВМ на другую. Неудивительно, что сейчас продается много различных вариантов мобильной операционной системы UNIX, таких как XENIX, UNIXWARE, SUN-OS, LINUX, BSD.

Теоретически все эти ОС работают примерно одинаково. Рассмотрим теорию операционных систем.

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


ОС, выполняя роль посредника, служит двум целям:

1. эффективно использовать компьютерные ресурсы.

2. создавать условия для эффективной работы пользователя

В качестве ресурсов компьютера обычно рассматривают:

1. время работы процессора

2. адресное пространство основной памяти

3. оборудование ввода – вывода

4. файлы, хранящиеся во внешней памяти


На рисунке приведены основные компоненты ОС как системы разделения ресурсов.

Таким образом, основные компоненты ОС:

1. управление процессами (распределяет ресурс - процессорное время);

2. управление памятью (распределяет ресурс - адресное пространство основной памяти);

3. управление устройствами (распределяет ресурсы) - оборудование ввода-вывода;

4. управление данными (распределяет ресурс - данные или файлы).

Функционирование компьютера после включения питания начинается с запуска программы первоначальной загрузки - Boot Track. Программа Boot Track инициализирует основные аппаратные блоки компьютера и регистры процессора (CPU), накопитель памяти, контроллеры периферийного оборудования. Затем загружается ядро ОС, то есть Operating System Kernel. Дальнейшее функционирование ОС осуществляется как реакция на события, происходящие в компьютере. Наступление того или иного события сигнализируется прерываниями - Interrupt. Источниками прерываний могут быть как аппаратура (HardWare), так и программы (SoftWare).

Аппаратура “сообщает” о прерывании асинхронно (в любой момент времени) путем пересылки в CPU через общую шину сигналов прерываний. Программа “сообщает” о прерывании путем выполнения операции System Call. Примеры событий, вызывающих прерывания:

1. попытка деления на 0

2. запрос на системное обслуживание

3. завершение операции ввода - вывода

4. неправильное обращение к памяти

Каждое прерывание обрабатывается соответственно обработчиком прерываний (Interrupt handler), входящим в состав ОС.

Главные функции механизма прерываний — это:

1. распознавание или классификация прерываний

2. передача управления соответственно обработчику прерываний

3. корректное возвращение к прерванной программе

Переход от прерываемой программы к обработчику и обратно должен выполняться как можно быстрей. Одним из быстрых методов является использование таблицы, содержащей перечень всех допустимых для компьютера прерываний и адреса соответствующих обработчиков. Такая таблица называется вектором прерываний (Interrupt vector) и хранится в начале адресного пространства основной памяти (UNIX/MS DOS).

Для корректного возвращения к прерванной программе перед передачей управления обработчику прерываний, содержимое регистров процессора запоминается либо в памяти с прямым доступом либо в системном стеке — System Stack.

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


1. Управление процессами.

Процесс — это программный модуль, выполняемый в CPU. Операционная система контролирует следующую деятельность, связанную с процессами:

1. создание и удаление процессов

2. планирование процессов

3. синхронизация процессов

4. коммуникация процессов

5. разрешение тупиковых ситуаций

1.1 Понятие Процесс. Состояния процесса.

Не следует смешивать понятия процесс и программа. Программа - это план действий, а процесс — это само действие. Понятие процесс включает:

1. программный код

2. данные

3. содержимое стека

4. содержимое адресного и других регистров CPU.

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


Различают следующие состояния процесса:

1. новый (new, процесс только что создан)

2. выполняемый (running, команды программы выполняются в CPU)

3. ожидающий (waiting, процесс ожидает завершения некоторого события, чаще всего операции ввода - вывода)

4. готовый (ready, процесс ожидает освобождения CPU)