Проектирование гипотетической операционной системы

Общая организация файловой системы. Виртуальные страницы. Команды для работы с ФС. Способы организации файлов. Системные вызовы управления процессами. Алгоритм работы планировщика процессов. Мультипрограммный режим работы ОС. Структура ядра системы.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 23.03.2015
Размер файла 645,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Существует много разновидностей терминалов. На практике сегодня наиболее часто встречаются следующие три типа терминалов:

1. Автономные терминалы с последовательным интерфейсом RS-232 для связи с мэйнфреймами.

2. Дисплеи персональных компьютеров с графическим интерфейсом пользователя.

3. Сетевые терминалы.

Каждый из этих типов терминалов занимает свою «экологическую» нишу. Терминалы являются алфавитно-цифровыми. Это означает, что экран или окно отображает определенное количество строк текста. Обычный размер такого окна составляет 25 строк по 80 символов. Хотя иногда такие терминалы (и эмуляторы) поддерживают определенные специальные символы, в основном они являются исключительно текстовыми.

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

4.2 Структура ядра ОС

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

Условно ядро можно разделить на следующие составляющие:

- Управление процессами, распределение ресурсов системы;

- Управление стандартными устройствами ввода и вывода;

- Управление памятью, обеспечение выделения и освобождения памяти;

- Управление ФС, обеспечение обмена данными с диском;

- Контроль доступа к компьютеру.

4.3 Структура управляющих блоков базы данных ОС

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

База данных состоит из следующих управляющих блоков:

- блок управления пользователями;

- блок управления файлами;

- блок управления памятью;

- блок управления процессами;

- блок управления файлами.

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

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

Блок управления устройствами регистрирует все устройства, их текущее состояние, при необходимости меняет его в ходе работы.

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

4.4 Схема взаимодействия управляющих блоков базы данных ОС

4.4.1 Блоки управления

На рисунке 4.2 приведена схема взаимодействия управляющих блоков базы данных операционной системы.

Размещено на http://www.allbest.ru/

Рисунок 4.2 - Взаимодействие управляющих блоков базы данных ОС

Блок управления процессами имеет следующую структуру:

- PID -- ID процесса;

- NAME -- имя процесса;

- QID -- идентификатор очереди, в которой стоит процесс;

- ID -- идентификатор пользователя;

- PRI -- приоритет процесса;

- ST -- текущее состояние процесса (0 - процесс находится в режиме выполнения, 1 - процесс находится в режиме ожидания, 2 - процесс находится в режиме готовности).

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

- RCB_HANDLE -- дескриптор блока;

- RCB_SIZE -- размер блока;

- RCB_CADR -- текущий адрес блока;

- RCB_RIGHT -- права доступа.

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

При открытии файла в БД создается запись для этого файла, при его закрытии он удаляется. Если с файлом работает несколько процессов одновременно, то все связи с процессами этого файла указываются.

Структура блока управления файлами представляет собой следующее:

- FCB_ID -- ID файла;

- NAME -- имя файла;

- SIZE -- размер файла;

- UID -- идентификатор владельца;

- TIME -- время создания;

- BUSYBLOCKS -- перечень блоков, занимаемых данным файлом.

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

- U_ID -- ID пользователя;

- U_Name -- имя пользователя;

- U_GROUP -- группа пользователя (текущая);

- U_RIGHT -- права пользователя.

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

Блок управления устройством содержит следующую информацию:

- DCB_ID -- ID устройства;

- DCB_NAME -- имя устройства;

- DCB_ST -- статус устройства;

- DCB_INT -- таблица точек входа;

- DCB_INIT -- инициализация;

- DCB_WRITE -- флаг записи;

- DCB_READ -- флаг чтения;

- DCB_PROP -- параметры устройства;

- DCB_DRV -- адрес драйвера устройства;

- DCB_NEXT -- адрес следующего DCB.

4.4.2 Обеспечение ввода-вывода данных

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

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

Тесно связан с концепцией независимости от устройств принцип единообразного именования. Имя файла или устройства должно быть просто текстовой строкой или целым числом и никоим образом не зависеть от физического устройства.

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

Еще одним ключевым вопросом является способ переноса данных: синхронный (блокирующий) против асинхронного (управляемого прерываниями). Большинство операций ввода-вывода на физическом уровне являются асинхронными -- центральный процессор запускает перенос данных и отправляется заниматься чем-либо другим, пока не придет прерывание. Программы пользователя значительно легче написать, используя блокирующие операции ввода-вывода -- после обращения к системному вызову read программа автоматически приостанавливается до тех пор, пока данные не появятся в буфере. Тем, чтобы операции ввода-вывода, в действительности являющиеся асинхронными, выглядели как блокирующие в программах пользователя, занимается операционная система.

Еще одним аспектом программного обеспечения ввода-вывода является буферизация. Часто данные, поступающие с устройства, не могут быть сохранены сразу там, куда они в конечном итоге направляются. Например, когда пакет приходит по сети, операционная система не знает, куда его поместить, пока не будет изучено его содержимое, для чего этот пакет нужно где-то временно сохранить. Кроме того, для многих устройств реального времени крайне важными оказываются параметры сроков поступления данных (например для устройств воспроизведения цифрового звука), поэтому полученные данные должны быть помещены в выходной буфер заранее, чтобы скорость, с которой эти данные получаются из буфера воспроизводящей программой, не зависела от скорости заполнения буфера. Таким образом удается избежать неравномерности воспроизведения звука. Буферизация включает копирование данных в значительных количествах, что часто является основным фактором снижения производительности операций ввода-вывода.

И последним понятием является понятие выделенных устройств и устройств коллективного использования. С некоторыми устройствами ввода-вывода, такими как диски, может одновременно работать большое количество пользователей. При этом не должно возникать проблем, если несколько пользователей на одном и том же диске одновременно откроют файлы. Другие устройства, такие как накопители на магнитной ленте, должны предоставляться в монопольное владение одному пользователю, пока он не завершит свою работу с этим устройством. После этого накопитель может быть предоставлен другому пользователю. Если два или более пользователей одновременно станут писать вперемешку блоки на одну ленту, то ничего хорошего не получится. Введение понятия выделенных (монопольно используемых) устройств также привносит целый спектр проблем, например, как взаимоблокировки. Тем не менее операционная система должна уметь управлять как устройствами общего доступа, так и выделенными устройствами, позволяя избегать различных потенциальных проблем.

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

Для проектируемой ОС организуем все системные вызовы через 21h прерывание (для терминала и НМД). В регистре AH - задается № функции, в регистре Al - № подфункции. Передача дополнительных аргументов в системные функции оговаривается отдельно (таблица 4.1).

Таблица 4.1

Номер функции

Название обслуживания

Подфункции

10h

Сервис монитора (драйвер)

Al = 00h - вывод символа

Al = 01h - установить позицию курсора

Al = 02h - считать позицию курсора

Al = 03h - прокрутить экран вверх/вниз

Al = 05h - вывести строку на экран

Al = 06 - очистить экран

12h

Работа с дисками (НМД)

Al = 00h - позиционирование головок

Al = 01h - чтение кластера

Al = 02h - запись кластера

Al = 03h - проверка кластера

Al = 04h - чтение информации о диске

Al = 05h - определение свободного мета на диске

Al = 0Еh - форматирование дорожки

Al = 0Fh - форматирование сектора

Перечень ссылок

1. Таненбаум Э. «Современные операционные системы» - «Питер», 2002 г. - 1040 с: ил.

2. Робачевский А. М., Операционная система Unix. - СПб.: BHV-Санкт-Петербург, 1998. -528 С., Ил.

3. http://uk.wikipedia.org/wiki/Виртуальная_память.

4. http://uk.wikipedia.org/wiki/Операційна_система.

5. http://uk.wikipedia.org/wiki/Пріоритет_процесів_в_UNIX.

6. THE DESIGN OF THE UNIX OPERATING SYSTEM by Maurice J. Bach (Перевод с английского к.т.н. Крюкова А.В.).

7. Кейслер С. Проектирование операционных систем для малых ЭВМ. М.: Мир, 1986.

8. Дейтел Х. М. Введение в операционные системы. В 2-х томах - М.: Мир, 1987.

Размещено на Allbest.ru


Подобные документы

  • Структура ядра операционной системы. Основные компоненты подсистемы управления процессами и памятью. Характеристика системных и прикладных процессов в Unix. Идентификация процесса Linux, его атрибуты и вызовы. Средства межпроцессного взаимодействия.

    лекция [170,1 K], добавлен 29.07.2012

  • Определение файловой системы. Виртуальные и сетевые файловые системы. Структура и версии системы FAT. Определение максимального размера кластера. Драйверы файловой системы, файлы и каталоги. Способы доступа к файлам, находящимся на удаленном компьютере.

    доклад [29,2 K], добавлен 11.12.2010

  • Изучение механизма работы программных инструментов как трудная часть отладочного процесса. Отладчики пользовательского режима, их основные типы. Автоматический запуск приложений в отладчике. Быстрые клавиши прерываний. Отладка ядра операционной системы.

    реферат [260,0 K], добавлен 25.11.2016

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

    курсовая работа [1,7 M], добавлен 12.01.2014

  • Изучение основных правил проектирования операционных систем. Структура файловой системы. Компоненты, обеспечивающие способы организации, поиска и управления информацией. Краткий обзор специальных и обыкновенных файлов. Основные команды системы UNIX.

    методичка [36,4 K], добавлен 02.12.2009

  • Понятие операционной системы (ОС) как базового комплекса компьютерных программ для управления аппаратными средствами компьютера и работы с файлами. Файловые системы и их основные функции. Способы именования файлов при создании диска, совместимость с ОС.

    контрольная работа [36,8 K], добавлен 20.11.2009

  • Характеристика работы операционной системы Android, используемой для мобильных телефонов. Создание Android проекта в среда разработки Eclipse. Общая структура и функции файла манифест. Компоненты Android приложения. Способы осуществления разметки.

    курсовая работа [1,0 M], добавлен 15.11.2012

  • Схема функционирования и алгоритм работы кэш-памяти. Характеристика процесса: среднее время доступа к данным. Проблема согласования данных. Принципы работы дисковой подсистемы ОС. Цели использования, типы и атрибуты файлов. Структура файловой системы.

    презентация [109,2 K], добавлен 20.12.2013

  • Особые режимы работы операционной системы Microsoft Windows. Характеристика стандартного и диагностического режимов. Безопасный режим и его основные виды. Дополнительные варианты загрузки MS Windows. Режимы работы с пониженным энергопотреблением.

    реферат [626,5 K], добавлен 17.06.2012

  • Системные вызовы и библиотечные функции. Требования к программе и программному изделию. Функция отображения списка имен файлов правой панели, удаления, перемещения и переименования, выдачи сообщения об ошибках. Порядок создания собственных библиотек.

    курсовая работа [935,4 K], добавлен 09.08.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.