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

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

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

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

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

31

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

МИНИСТЕРСТВО НАУКИ И ОБРАЗОВАНИЯ УКРАИНЫ

ДОНЕЦКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

КАФЕДРА ПРИКЛАДНОЙ МАТЕМАТИКИ И ИНФОРМАТИКИ

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовой работе по дисциплине

«Теория операционных систем»

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

Руководитель: Выполнил:

доцент каф. ПМИ студент гр. ПС-09б

Бабков В.С. Музычин С.Г.

__.__ . 2011 г. __ .__ . 2011 г.

Донецк 2011

Реферат

Отчет по курсовой работе содержит: 94 страницы, 6 рисунков, 11 таблиц, 4 приложения, 4 источников.

Объект исследования - операционные системы, их проектирование и эмуляция работы.

Задача исследования - изучить принципы работы операционных систем.

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

Результат - проект гипотетической операционной системы, программа на языке программирования C#, которая эмулирует работу файловой системы и планировщика процессов спроектированной операционной системы.

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

ОПЕРАЦИОННАЯ СИСТЕМА, ПЛАНИРОВЩИК ПРОЦЕССОВ, КОМАНДНЫЙ ИНТЕРПРИТАТОР, ФАЙЛОВАЯ СИСТЕМА

Содержание

Введение

1. Структура проектируемой файловой системы

1.1 Общая организация файловой системы

1.1 Суперблок

1.1.1 FAT (таблица)

1.1.2 Копия FAT

1.1.3 Таблица пользователей

1.1.4 Корневой каталог

1.1.5 Область файлов

1.2 Виртуальные страницы

1.3 Команды для работы с ФС

1.4 Системные вызовы для работы с ФС

1.5 Способы организации файлов

1.6 Алгоритм работы некоторых системных вызовов ФС

1.6.1 Создание файла

1.6.2 Удаление пользователя

1.6.3 Изменение прав для остальных пользователей

2. Процессы в ОС

2.1 Команды для работы с процессами

2.2 Системные вызовы управления процессами

2.3 Диаграмма состояний процесса

2.4 Приоритеты процессов

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

2.6 Выбор дисциплины обслуживания планировщика процессов

3. Режимы работы проектируемой ОС

3.1 Мультипрограммный режим работы ОС

3.2 Многопользовательская защита

3.3 Интерактивный режим работы ОС

4. Структура операционной системы

4.1 Общая структура проектируемой ОС

4.2 Структура ядра проектируемой ОС

5. Разработка программ эмуляции ОС

5.1 Описание программных средств

5.2 Разработка программы эмуляции ФС

5.3 Разработка командного интерпретатора

5.4 Эмуляция планирования

6. Тестирование программы. Анализ результатов

Выводы

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

Приложение А Экранные формы

Приложение Б Листинг программы

Приложение В Руководство пользователя

Введение

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

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

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

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

1. Структура файловой системы

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

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

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

1.1 Общая организация файловой системы

При проектировании файловой системы, в качестве основы была выбрана система FAT32 (от англ. File Allocation Table -- «таблица размещения файлов»). Она была создана, чтобы преодолеть ограничения на размер тома в FAT16, позволяя при этом использовать старый код программ MS-DOS и сохранив формат. FAT32 использует 32-разрядную адресацию кластеров. Появилась вместе с Windows 95. Минус данной ФС заключается в том, что штатными средствами след. ОС: Windows 2000,

Windows XP, Windows Vista и Windows 7 невозможно создать разделы FAT32 более 32 ГБ. Однако с такими разделами возможно работать, если они были предварительно созданы в других ОС. Причина этого заключается в том, что по мнению Microsoft, при увеличении размера тома FAT32 выше 32 ГБ резко падает производительность.

Как было упомянуто выше препятствием на пути отказа от FAT32 и перехода на другие файловые системы на USB флеш-накопителях является производительность. Помимо всего этого и у FAT32 есть ряд преимуществ как в скорости записи на флеш-накопитель, так и в скорости чтения/копирования данных с него.[3] Новейшие FAT 32 имеют атрибуты (архивный, системный, скрытый, временный, только для чтения).

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

1) Суперблок;

2) FAT;

3) Копия FAT;

4) Таблица пользователей;

5) Корневой каталог;

В область данных входят:

1) Файлы.

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

Служебные области

Область данных

Суперблок

FAT

Копия FAT

Таблица пользователей

Корневой каталог

Файлы

Рисунок 1.1 - Логическая структура диска

Пояснения для служебных областей (разделов):

1) Суперблок - он похож на журнал. В нем хранится информация о самой файловой системе, адресах начала каждого блока и конечно о размере и кол-ве ее структурных компонентов.

2) FAT - это таблица, в которой соответственно хранится информация о свободных/занятых кластерах. Также в ней хранятся ссылки на кластеры и информация об окончании файла.

3) Копия FAT - это копия таблицы FAT , она необходима (предназначена) обеспечения для надежности ФС.

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

5) Корневой каталог - содержит информацию о файлах, находящихся в области файлов (сами файлы).

Пояснения для области данных:

6) Файлы - это и является областью файлов, содержит разнообразие файлов разных размеров и назначений.

Нумерация кластеров начинается с кластера 1, 2, 3, …и т.д.

1.1.1 Суперблок

Далее будет представлена структура самого суперблока. Информацию см. в таблице 1.1.

Таблица 1.1 - Структура суперблока

Тип

Поле

Размерность

Назначение

char[]

fs_name

10 байт

Название ФС.

ushort

cl_size

2 байта

Размер кластера.

ushort

sb_fst_cl

2 байта

Начальный кластер суперблока.

ushort

fat_fst_cl

2 байта

Начальный кластер FAT - таблицы.

ushort

cp_fst_cl

2 байта

Начальный кластер копии FAT - таблицы.

ushort

usr_fst_cl

2 байта

Начальный кластер таблицы пользователей.

ushort

rt_fst_cl

2 байта

Начальный кластер корневого каталога.

ushort

f_fst_cl

2 байта

Начальный кластер области файлов.

ushort

f_cl_ct

2 байта

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

ushort

max_usr_ct

2 байт

Максимальное количество пользователей.

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

Параметры суперблока имеют такие значения, которые задаются при разметке диска по ФС. Изначально, по умолчанию будут заданы такие значения:

fs_name = NFFS

cl_size = 512

sb_fst_cl = 1

fat_fst_cl = 2

cp_fst_cl = 4

usr_fst_cl = 6

rt_fst_cl = 9

f_fst_cl = 53

f_cl_ct = 512

max_usr_ct = 20

1.1.2 FAT (таблица)

Таблица 1.2 - Структура FAT(таблица)

Тип

Поле

Размерность

Назначение

ushort[f_cl_ct]

fat_table

f_cl_ ct *2 байт

FAT таблица, в которой будут хранится список занятых/свободных кластеров.

0 - пустой кластер

120 - кластер занят, ссылка на 120 кластер.

999 - занятый кластер, конец файла.

Каждая запись находящаяся в таблице занимает 2 байта. Размерность всей FAT(таблицы) просчитывается по формуле f_cl_ ct *2. Для значений, которые заданы по умолчанию, размерность FAT будет 512*2=1024=2класт.

1.1.3 Копия FAT

Таблица 1.3 - Структура копии FAT

Тип

Поле

Размерность

Назначение

ushort[f_cl_ct]

fat_cp_table

f_cl_ ct *2 байт

FAT таблица, в которой будут хранится список занятых/свободных кластеров.

0 - пустой кластер

120 - кластер занят,

999 - кластер занят, конец файла.

Каждая запись в таблице занимает по 2 байта. Соответственно размерность будет равна 2 кластера, аналогично, как и самой FAT(таблицы).

1.1.4 Таблица пользователей

Таблица пользователей будет, представляет собой массив структур User.

Таблица 1.4 - Структура таблицы пользователей

Тип

Поле

Размерность

Назначение

User[]

usr_table

max_usr_ct * 57 байт

Таблица пользователей.

Таблица 1.5 - Структура User

Тип

Поле

Размерность

Назначение

int

uid

2 байта

Идентификатор пользователя.

char[]

name

10 байт

Имя пользователя.

int

gid

2 байта

Идентификатор группы в которой находится пользователь.

char[]

group_name

10 байт

Название группы

char[]

password_hash

32 байт

Пароль пользователя в хеш из 32 символов.

char

orders

1 байт

“a” - права администратора.

“g” - права группы.

“o” - права для других.

Размерность структуры User представляет собой сумму всех полей = 57 байт. Размерность всей таблицы, с установленными по умолчанию параметрами, будет равна 57*max_usr_ct = 57*20 = 1140 = 3 кластера (1536 б.).

1.1.5 Корневой каталог

Корневой каталог представляет собой массив структур File.

Таблица 1.6 - Структура корневого каталога

Тип

Поле

Размерность

Назначение

File[]

root

f_cl_ct * 44 байта

Таблица корневого каталога, содержащая информацию о файлах.

Таблица 1.7 - Структура File

Тип

Поле

Размерность

Назначение

char[]

file_name

10 байт

Имя файла

char[]

ext

3 байта

Расширение файла

char[]

last_data

19 байт

Дата и время создания, либо последнего изменения

ushort

ft_cl

2 байта

Начальный кластер файла

int

size

4 байта

Размер файла

char[]

file_orders

6 байт

Права на файл.

Вид: rwxrwx

Первая триада устанавливается для группы “g”.

Вторая триада устанавливается для других “o”.

r - права на чтение.

w - права на запись.

x - права на выполнение.

Учитывая то, что количество выделяемых кластеров под область файлов 512, то размер корневого каталога = 512 * 44 = 22528 б = 44 кластера.

1.1.6 Область файлов

Данная область содержит в себе различные файлы, а также их различные расширения. Размерность данной области определяется параметром, который задан в суперблоке (f_cl_ct), он же устанавливает количество кластеров, выделяемых под эту область.

1.2 Виртуальные страницы

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

При использовании виртуальной памяти упрощается программирование, так как программисту больше не нужно учитывать ограниченность памяти, или согласовывать использование памяти с другими приложениями. Для программы выглядит доступным и непрерывным все допустимое адресное пространство, вне зависимости от наличия в ЭВМ соответствующего объема ОЗУ.

Применение механизма виртуальной памяти позволяет:

- упростить адресацию памяти клиентским программным обеспечением;

- рационально управлять оперативной памятью компьютера (хранить в ней только активно используемые области памяти);

- изолировать процессы друг от друга (процесс полагает, что монопольно владеет всей памятью).

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

1.3 Команды для работы с ФС

В данной ОС был разработан ряд(набор) команд для работы с файловой системой. Данные команды представлены далее, в таблице 1.8

Таблица 1.8 - Ряд команд для работы с файловой системой

Команда

Параметры

Аргументы

Описание

exit

-

-

Выход из системы.

help

-

-

Вывод справки.

fsinfo

-

-

Вывод информации о файловой системе.

cr

-f

file.txt

Создание файла, где file - имя файла, а txt - расширение.

cr

-u

name, gid, password, orders

Создание пользователя, где name - имя пользователя, gid - id группы, password - пароль, orders - права.

Команда будет доступна если права пользователя `a'.

rn

-

file.txt, new_name

Переименование файла, где file - имя файла, new_name - новое имя файла, а txt - расширение.

cp

-

file.txt, copy_name

Копирование файла, где file - имя исходного файла, copy_name - имя копии, txt - расширение.

rm

-f

file.txt

Удаление файла, где file - имя файла, а txt - расширение.

rm

-u

uid

Удаление пользователя, где uid - идентификатор пользователя.

Команда будет доступна если права пользователя `a'.

wr

-a

file.txt

Открытие файла на запись в конец, где file - файл, txt - расширение.

wr

-t

file.txt

Открытие файла на перезапись, где где file - файл, txt - расширение.

show

-f

-

Демонстрация всех файлов

show

-F

-

Демонстрация всех файлов в расширенном виде.

show

-u

-

Демонстрация всех пользователей.

chmod

-o

file.txt, rwx

Смена прав доступа для триады `o', где file - файл, txt - расширение, rwx - права в формате rwx.

chmod

-g

file.txt, rwx

Смена прав доступа для триады `g', где file - файл, txt - расширение, rwx - права в формате rwx.

chmod

-u

uid, orders

Смена прав пользователя, где uid - идентификатор пользователя, orders - права в формате `a' или `g' или `o'.

Команда будет доступна если права пользователя `a'.

text

-

file.txt

Демонстрация содержания файла, где, file - файл, txt - расширение.

format

-

-

Форматирование файловой системы.

1.4 Системные вызовы для работы с ФС

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

Таблица 1.9 - Системные вызовы

Системный вызов

Параметры

Результат

Описание

FSInfo

-

Строка, содержащая информацию об ФС

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

Exit

-

-

Выход.

Help

-

-

Вывод справки.

CreateFile

file_name, extention, cur_user_orders

1 - файл создан.

0 - файл уже существует

-1 - недостаточно места.

Создает файл.

RenameFile

old_name, extention, new_name, cur_user_orders

1 - файл переименован,

0 - файл уже существует,

-1 - файл не найден,

-2 - нет доступа к файлу.

Переименовывает файл.

RemoveFile

file_name, extention, cur_user_orders

1 - файл удален,

0 - файл не найден,

-1 - нет доступа к файлу.

Удаляет файл.

CopyFile

file_name, extention, copy_name, cur_user_orders

1 - файл скопирован,

0 - файл уже существует,

-1 - файл не найден,

-2 - нет доступа к файлу.

Копирует файл.

CreateUser

name, gid, password, orders, cur_user_orders

1 - пользователь создан,

0 пользователь с таким именем уже существует,

-1 - превышение ограничения количества пользователей,

-2 - права доступа не позволяют произвести данную операцию.

Создает пользователя.

RemoveUser

uid, cur_user_orders

1 - пользователь удален,

0 - пользователь не найден,

-1 - удаление администратора не возможно,

-2 - права доступа не позволяют произвести данную операцию.

Удаляет пользователя.

OpenAppend

file_name, extention, text, user_orders

1 - запись успешно произведена,

0 - файл не найден,

-1 - нет доступа к файлу.

Открывает файл и дописывает в конец.

OpenTruncate

file_name, extention, text, user_orders

1 - запись успешно произведена,

0 - файл не найден,

-1 - нет доступа к файлу.

Открывает файл и перезаписывает.

ShowFilesText

file_name, extention, user_orders

1 - файл найден, информация будет выведена,

0 - файл не найден,

-1 - нет доступа к файлу.

Просмотр содержимого файла.

ShowFiles

-

Список всех файлов.

Показывает список всех файлов.

ShowFilesLong

-

Cписок всех файлов в длинном формате.

Показывает список всех файлов в длинном формате.

ShowUsers

-

Список всех пользователей.

Показывает список всех пользователей.

ChModGroup

file_name, extention, file_orders, user_orders

1 - права изменены,

0 - файла не существует,

-1 - нет доступа к файлу.

Меняет права доступа к файлу для группы.

ChModOthers

file_name, extention, file_orders, user_orders

1 - права изменены,

0 - файла не существует,

-1 - нет доступа к файлу.

Меняет права доступа к файлу для остальных.

ChOrders

uid, new_orders, user_orders

1 - права изменены,

0 - пользователь не найден,

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

-2 - нельзя поменять права администратора.

Меняет права пользователя.

Formating

-

-

Диалог форматирования диска, задаётся множество параметров, затем производится форматирование.

1.5 Способы организации файлов

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

1.6 Алгоритм работы некоторых системных вызовов ФС

Далее рассматриваются выполнения системных вызовов. Примером послужит создание файла и изменение прав доступа к нему.

1.6.1 Создание файла

Создание файла мы производим с помощью системного вызова “CreateFile”. Как осуществляется его работа описано далее:

1. Получение имени, расширения файла и прав текущего пользователя.

2. Проверка на существование файла с таким именем.

Если существует, то производится возврат кода 0, и происходит завершение системного вызова.

3. Проверка на наличие достаточного количества дискового пространства.

Если выходит так, что пространства не хватает, то производится возвращение кода -1, и происходит завершение системного вызова.

4. Создание файла и добавление в корневой каталог записи об этом файле. Записи о файле будут установлены по умолчанию.

1.6.2 Удаление пользователя

Удаление пользователя можно осуществить с помощью системного вызова “RemoveUser”, который работает по следующему принципу:

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

2. Проверка на наличие такого пользователя.

Если пользователь не найден, то происходит возвращение кода 0, и следом выполняется завершение системного вызова.

3. Производится проверка на то, что удаляемый пользователь не является администратором. Если вдруг пользователь является администратором, то происходит возвращение кода -1.

4. Получение из таблицы пользователей прав пользователя, который в данное время работает. Если права != “a”, то производит возвращение кода -2, и следом идет завершение системного вызова.

5. Производится удаление пользователя из таблицы пользователей.

1.6.3 Изменение прав для остальных пользователей

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

1. Получение параметров, таких как: наименование файла, его расширение, права для файла, права для текущего пользователя.

2. Проверка на наличие файла. Если оказалось, что файла нет, то производится возврат кода 0, и следом происходит завершение системного вызова.

3. Если права не позволяют произвести изменение прав файла, то производится возврат кода -1,после происходит завершение системного вызова.

4. Поменять права доступа.

2. Процессы в ОС

2.1 Команды для работы с процессами

Итак, рассмотрим команды для работы с процессами (см. табл. 2.1).

Таблица 2.1 - Команды для работы с процессами

Имя команды

Параметры

Описание

printproc

-

Вывод на экран информации обо всех выполняющихся процессах

crtproc

prname,prprio, prtime

Создание процесса с именем prname, приоритетом prprio, временем выполнения prtime секунд.

delproc

prid

Удаление процесса с id prid

chgproc

рrname, prprio

Изменение текущего приоритета процесса рrname на prprio

killall

-

Удаляет все процессы

2.2 Системные вызовы управления процессами

Все системные вызовы, которые необходимы для управления процессами представлены в таблице 2.2.

Таблица 2.2 - Системные вызовы управления процессами

Вызов

Параметры

Результат

Описание

startpr

-

-

Работа процесса

gettime

-

int

возвращает время работы процесса

getproc

-

Proc

возвращает текущий процесс

crtproc

-

-

Добавление процесса

print

-

-

Вывод процессов на экран

disprun

-

-

Работ диспетчера

chgpr

-

-

Изменить приоритет процесса

killproc

-

-

Уничтожение процесса

killall

-

-

Уничтожение всех процессов

2.3 Диаграмма состояний процесса

Диаграмма состояний процесса изображена для ознакомления на рис. 2.1.

Рисунок 2.1 - Диаграмма состояний процесса

При создании процесса, изначально ему присваивается состояние (Wait) или (Run). Это зависит от рассматриваемой ситуации. После отработки кванта времени, процесс он переходит в состояние (Wait). Когда очередь доходит до процесса, который находится в состоянии (Wait) ожидании, то он переходит в состояние (Run) работы. После того как время работы процесса истекло, либо его удалили, процесс переходит в состояние (Zombie).

2.4 Приоритеты процессов

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

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

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

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

Проектируемая операционная система поддерживает такие средства взаимодействия процессов как сообщения и отображаемая память.

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

Метод передачи сообщений использует два примитива - (send) и (receive). Первый запрос производит отправку сообщения заданному адресату, а второй запрос получает сообщение от указанного источника.

Для того, чтобы избежать потери сообщений, отправитель и получатель договариваются, что при получении сообщения получатель будет посылать обратно подтверждение приема сообщения. Например, как это производится в телефонах, при отправке сообщения. Также в тело самого сообщения необходимо и помещается его порядковый номер, чтобы получатель мог отличить копию предыдущего сообщения от нового. Когда отправитель и получатель находятся на одном компьютере, существенно падает производительность. Для решения этой проблемы можно уменьшить размер сообщения до размера регистра и передавать сообщения через регистры [3].

2.6 Выбор дисциплины обслуживания планировщика процессов

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

3. Режимы работы проектируемой операционной системы

3.1 Мультипрограммный режим работы операционной системы

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

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

Следует, однако, учитывать, что настоящая многозадачность может быть достигнута только в многопроцессорных системах. Но реализованная в проектируемой операционной системе псевдомногозадачность позволяет распределять процессорное время в соответствии с приоритетами поступивших на выполнение процессов.[4]

3.2 Многопользовательская защита

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

3.3 Интерактивный режим работы ОС

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

4. Структура операционной системы

4.1 Общая структура проектируемой ОС

Структура операционной системы NFOS состоит из следующих основных частей:

1. Драйвер файловой системы NFOS.

2. Установщик операционной системы.

3. Командный интерпретатор.

4. Планировщик

Драйвер файловой системы NFFS представляет собой класс, который содержит в себе основные функции для работы с файловой системой NFFS.

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

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

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

31

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

Рисунок 4.1 - Организация работы планировщика

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

4.2 Структура ядра проектируемой ОС

эмулятор операционный система виртуальный

Подсистема управления памятью использует страничную организацию оперативной памяти. Это означает, что программно формируются адреса в памяти, называемые виртуальными адресами, и формируют виртуальное адресное пространство. Пространство виртуальных адресов разделено на единицы, называемые страницами. Соответствующие единицы в физической памяти называются страничными блоками (page frame). Страницы и их блоки имеют всегда одинаковый размер. В реальных системах использовались размеры страниц от 512 байт до 64 Кбайт. Передача данных между ОЗУ и диском всегда происходит в страницах.

Подсистема управления устройствами работает с такими устройствами, как видеотерминал и НМД (накопители на магнитных дисках). Видеотерминал - устройство, которое отображает пользователю информацию при помощи изображений (монитор). НМД - запоминающее устройство (устройство хранения информации) произвольного доступа, основанное на принципе магнитной записи (жесткий диск).[4]

Ядро операционной системы представляет собой класс SOS, который содержит в себе такие данные:

1. Путь к файлу ФС

2. Имя текущего пользователя.

3. UID текущего пользователя.

4. Права текущего пользователя.

5. Разработка программ эмуляции ОС

5.1 Описание программных средств

Программа эмуляции операционной системы $OS была реализована на языке программирования C# при помощи среды разработки Microsoft Visual Studio 2010 Ultimate под управлением ОС Microsoft Windows XP.

Программа представляет собой исполнимый файл NFOS.exe

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

5.2 Разработка программы эмуляции ФС

Файловая система NFFS состоит из двух основных классов:

- Structures.cs - содержит все описания структур ФС.

- SystemCalls.cs - содержит все функции для работы с ФС.

5.3 Разработка командного интерпретатора

Командный интерпретатор реализован в классе SupportCalls. Запускается сам командный интерпретатор в классе Program.cs. В следствии ввода какой либо команды, запускается метод DefinitionLine, который относится к классу SupportCalls. Он выполняет распознавание команд и в, следствии распознания той или иной команды, запускает соответствующий метод принадлежащий классу SystemCalls.

Команды, который интерпретатор распознает:

1. еxit - выход.

2. help - справка.

3. fsinfo - информация о ФС.

4. cr -f - создание файла.

5. cr -u - создание пользователя.

6. rn - переименование файла.

7. cp - копирование файла.

8. rm -f - удаление файла.

9. rm -u - удаление пользователя.

10. wr - a - запись в конец файла.

11. wr - t - перезапись файла.

12. show -f - показать все файлы.

13. show -F - показать все файлы в длинном формате.

14. show -u - показать всех пользователей.

15. chmod -o - изменить права файла для других.

16. chmod -g - изменить права файла для группы.

17. chmod -u - изменить права пользователя.

18. text - показать содержимое файла.

19. format - форматирование файловой системы.

20. gettime - возвращает время работы процесса

21. getproc - возвращает текущий процесс

22. crtproc - добавление процесса

23. print - вывод процессов на экран

24. disprun - работ диспетчера

25. chgpr - изменить приоритет процесса

5.4 Эмуляция планирования

Для эмуляции работы планировщика были созданы классы Proc и Emul. Класс Proc содержит в себе функцию запуска процесса и получения параметров процесса. Класс Emul содержит в себе объект класса Proc и функции, которые эмулируют работу диспетчера планирования процессов.

6. Тестирование программы. Анализ результатов

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

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

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

Теперь программа работает правильно и выдает корректный результат при вводе различных входных данных.

Выводы

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

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

Практическая часть данной курсовой работы была разработана в среде Microsoft Visual Studio 2010 и написана на языке C#. За основу была взята файловая система типа FAT. Планировщик процессов также представляет собой поток, который непрерывно просматривает очередь и выполняет различные действия с ней, такие как выборка процесса на выполнение, удаление процесса, добавления процесса и др..

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

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

1. Гордеев А.В. Операционные системы: Учебник для вузов -- 2-е изд. -- СПб.: «Питер», 2007. -- 416 с.

2. Карпов В.Е., Коньков К.А. Основы операционных систем. Курс лекций. Учебное пособие - М.: ИНТУИТ.РУ «Интернет-Университет Информационных Технологий», 2005 - 536 с.

3. Таненбаум Э.С. Современные операционные системы -- 2-е изд. -- СПб.: «Питер», 2002. -- 1040 с.

4. Столлингс В. Операционные системы - М.: «Вильямс», 2002 - 786 с.

Приложение А

Экранные формы

Рисунок А.1 - Запуск программы (ОС)

Рисунок А.2 - Основные команды, пример использования

Рисунок А.4 - Меню Help

Приложение Б

Листинг Программы

Programm.cs

using System;

using System.Text;

using System.IO;

using System.Security.Cryptography;

using System.Diagnostics;

namespace NFOS

{

class Program

{

static void Main(string[] args)

{

NFOS.FileSystem.SystemCalls sc = new FileSystem.SystemCalls();

NFOS.FileSystem.SupportCalls supc = new FileSystem.SupportCalls();

NFOS.FileSystem.Structures strct = new FileSystem.Structures();

bool exist = true;

#region...


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

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

    курсовая работа [645,3 K], добавлен 23.03.2015

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

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

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

    лабораторная работа [847,5 K], добавлен 16.06.2011

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

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

  • Роль многопрограммной обработки информации для развития операционной системы. Загрузка операционной системы и основных файлов Windows. Базовая система ввода-вывода. Внутренние и внешние команды DOS. Спецификация учебных элементов. Граф учебной информации.

    контрольная работа [25,0 K], добавлен 24.10.2010

  • Работа с объектами операционной системы Windows: основные понятия и горячие клавиши. Создание и редактирование файлов и папок. Скриншоты и графический редактор Paint. Редактирование простейших текстовых документов в Блокноте. Работа с калькулятором.

    лабораторная работа [16,6 K], добавлен 30.11.2010

  • Методы и приемы работы в операционной системе Windows XP, часто используемой при работе с персональным компьютером. Средства по настройке и конфигурации операционной системы. Соответствие используемых аппаратных средств потребностям пользователя.

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

  • Правовые основы защиты информации на предприятии. Анализ среды пользователей. Автоматизированная система предприятия. Краткие сведения об операционной системе Windows XP. Классификация троянских программ. Способы защиты операционной системы Windows XP.

    дипломная работа [187,3 K], добавлен 14.07.2013

  • Что такое операционная система, ее главные функции и классификация. Характеристика операционной системы MS-DOS4, организация данных. Особенности основных операций и команд системы, отработка практических навыков использования команд для работы на ПК.

    контрольная работа [13,0 K], добавлен 04.03.2011

  • Основные защитные механизмы операционной системы семейства Unix, недостатки ее защитных механизмов. Идентификаторы пользователя и группы пользователей. Защита файлов, контроль доступа, уязвимость паролей. Проектирование символов для матричных принтеров.

    курсовая работа [488,8 K], добавлен 22.06.2011

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

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

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

    лабораторная работа [21,5 K], добавлен 12.05.2013

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

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

  • Файловый ввод/вывод с использованием разных классов. Вызовы операционной системы. Использование вызовов операционной системы. Основные способы открытия файла. Замена файла, связанного со стандартными устройствами ввода/вывода. Операции чтения файла.

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

  • Знакомство с операционной системой Windows. Исследование её устройства, истории, возможностей, особенностей работы с ней для получения новых знаний. Описание наиболее использующихся и важных функций этой операционной системы, их практическое освоение.

    контрольная работа [2,9 M], добавлен 14.12.2009

  • Обоснование комплексной системы защиты информации на предприятии. Основные способы защиты операционной системы от программных закладок типа "троянский конь". Оценка эксплуатационных характеристик информационной системы. Основные показатели надежности.

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

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

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

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

    реферат [17,4 K], добавлен 24.12.2010

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

    реферат [2,1 M], добавлен 26.10.2022

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

    дипломная работа [5,4 M], добавлен 27.06.2012

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