русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Т.В. Нестерова 1 страница


Дата додавання: 2014-11-28; переглядів: 760.


 

 

Сельцовского Антона Михайловича ___________ .

(прізвище, ім’я, по батькові)

 

1. Тема проекту (роботи) Проектирование операционной системы с заданными . характеристиками .

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

2. Строк здачі студентом закінченого проекту (роботи) 27.04.2012 .

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

_________________________________________________________________________________

4. Зміст розрахунково-пояснювальної записки (перелік питань, які підлягають розробці)_____

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

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

5. Перелік графічного матеріалу (з точним зазначенням обов’язкових креслень) ____________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

6. Дата видачі завдання 26.01.2012 .

КАЛЕНДАРНИЙ ПЛАН

№ п/п Найменування етапів курсового проекту (роботи) Строк виконання етапів проекту (роботи) Примітка
Выбор исходных элементов из классфикатора для изучения проектного решения 1-2 недели  
Разработка архитектуры аппаратных средств компьютера для реализации ОС 2-3 недели  
Разработка интерфейса пользователя (командного языка) 3-4 недели  
Проектирование основних структур данных и базы данных ОС 5-8 недели  
Программирование и отладка средства взаимодействия процессов 9-10 недели  
Программирование и отладка логики управления файловой системы 11-12 недели  
Написание программной документации и оформление пояснительной записки 13 неделя  
Защита КП 14 неделя  
       
       
       
       
       
       
       
       
       
       
       

 

Студент ____________________________ Сельцовский А. М. .

(підпис) (прізвище, ім’я, по батькові)

 

Керівник __________________________________ Ольшевский А. И.

(підпис) (прізвище, ім’я, по батькові)

 

Керівник __________________________________ Сорокин Р. А.. .

(підпис) (прізвище, ім’я, по батькові)

 

«____» ____________________ 2012 р.

 

 

  РЕФЕРАТ   Пояснительная записка: 95 с., 9 табл., 22 рис., 10 источников, 4 прил.   Целью создания проекта является приобретение практических навыков создания операционных систем и комплексного инженерного проектирования программного обеспечения, а также изучение особенностей различных алгоритмов управления ресурсами, организации оперативной памяти, средств взаимодействия процессов, а также организации файловых систем. Проект предназначен для демонстрации работы алгоритмов, связанных с операционными системами. Проектируемая операционная система может быть использована в учебных заведениях в качестве наглядного пособия при обучении приемам и правилам построения интерактивной операционной системы. Данный курсовой проект может ознакомить всех желающих с особенностями операционных систем и алгоритмов, применяемых ОС в управлении ресурсами. А также принципами работы файловой системы UNIX.     АРХИТЕКТУРА, ЯДРО, СИСТЕМНЫЙ ВЫЗОВЫ, ПРОЦЕССОР, МОДУЛЬ, БАЗА ДАННЫХ, СИСТЕМА КОМАНД, СЕМАФОР, ПАМЯТЬ, СИНХРОНИЗАЦИЯ, ПРОЦЕСС  
          Д050103.1.01.09/170.КП
         
    Фамилия Подпись Дата
Разработал Сельцовский А.М.     Проектирование операционной системы с заданными характеристиками Литера Лист Листов
Рук. проекта Ольшевский А.И       у  
  Сорокин Р. А..     ИИИИ, каф. ПОИС, группа ПОС-09в
Н. контр.      
Зав. каф. Шевченко А.И.    

 

СОДЕРЖАНИЕ

 

Введение........................................................................................................ 7

1 Постановка задачи.................................................................................... 9

1.1 Общая постановка задачи...................................................................... 9

1.2 Цель создания курсового проекта......................................................... 9

1.3 Область применения............................................................................... 9

1.4 Характеристики операционной системы............................................... 9

1.4.1 Особенности аппаратных платформ ................................................. 9

1.4.2 Особенности алгоритмов управления ресурсами............................. 11

1.4.3 Особенности областей использования............................................... 12

1.4.4 Организация оперативной памяти..................................................... 12

1.4.5 Средства взаимодействия процессов................................................. 16

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

1.4.8 Организация файловой системы........................................................ 18

2 Выбор архитектуры вычислительной системы....................................... 22

2.1 Общая схема архитектуры вычислительной системы......................... 22

2.2 Архитектура процессора...................................................................... 24

2.2.1 Архитектура процессора................................................................... 24

2.2.2 Режимы адресации............................................................................. 25

2.3 Система команд..................................................................................... 25

2.4 Спецификации интерфейсов с ВУ......................................................... 28

2.5 Система прерываний............................................................................. 30

2.6 Аппаратные средства обеспечения защиты ………………………………30

3 Проектирование командного языка ос.................................................... 33

3.1 Интерактивные команды....................................................................... 33

3.2 Системные вызовы................................................................................ 34

3.3 Язык пакетных файлов.......................................................................... 35

4 Определение состава и общей структуры системы................................. 37

4.1 Общее описание ядра и ОС................................................................... 37

4.2 Ядро и вспомогательные модули ОС................................................... 39

4.3 Загрузка ОС........................................................................................... 42

4.4 Структура ядра ОС............................................................................... 44

4.5 Системные вызовы................................................................................ 45

5 Формирование базы данных ОС............................................................. 53

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

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

6 Программная реализация........................................................................ 56

6.1 Средства взаимодействия процессов.................................................... 56

 

 

Разработал Фамилия Подпись Дата Д050103.1.01.09/170.КП Лист
ст. гр. ПОС-09а Сельцовский А.М.    
       

 

ПЕРЕЧЕНЬ ОБОЗНАЧЕНИЙ, СИМВОЛОВ, ЕДИНИЦ,

СОКРАЩЕНИЙ И ТЕРМИНОВ

 

КП — Курсовой проект

ПО — Программное обеспечение

ПП — Программный продукт

ОС — Операционная система

ЭВМ — Электронная вычислительная машина

БД — База данных

ФС — Файловая система

ОЗУ — Оперативное запоминающее устройство

ОП — Оперативная память

БД — База данных

 

 

Разработал Фамилия Подпись Дата Д050103.1.01.09/170.КП Лист
ст. гр. ПОС-09в Сельцовский А.М.    
       
                                         

 

 


6.2 Реализация логики управления файловой системой............................ 58

7 Определение состава и общей структуры ос.......................................... 60

7.1 Структура системы................................................................................ 60

7.2 Первоначальная загрузка..................................................................... 61

7.3 Файловая система ОС............................................................................ 61

7.4 Устройства............................................................................................. 61

7.5 Процессы.............................................................................................. 62

7.6 Общий алгоритм диспетчеризации...................................................... 67

7.7 Архитектура ядра UNIX....................................................................... 67

7.8 Прерывания и особые ситуации........................................................... 68

7.9 Функции операционной системы.......................................................... 69

Выводы........................................................................................................ 70

Список использованных источников.......................................................... 71

Приложение А. Техническое задание......................................................... 72

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

Приложение В. Экранные формы.............................................................. 76

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

 

Разработал Фамилия Подпись Дата Д050103.1.01.09/170.КП Лист
ст. гр. ПОС-09а Кравец А.Ю.    
       

ВВЕДЕНИЕ

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

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

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

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

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

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

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

 


1 ПОСТАНОВКА ЗАДАЧИ

 

1.1 Общая постановка задачи

 

Задача курсового проекта состоит в проектировании операционной системы согласно полученному варианту задания.

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

 

1.2 Цель создания курсового проекта

 

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

 

1.3 Область применения

 

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

 

1.4 Характеристики операционной системы

 

1.4.1 Особенности аппаратных платформ

 

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

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

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

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

В сетевой операционной системе отдельной машины можно выделить несколько частей:

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

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

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

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

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

 

1.4.2 Особенности алгоритмов управления ресурсами

 

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

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

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

- однозадачные (например, MS-DOS, MSX) и

- многозадачные (OC EC, OS/2, UNIX, Windows 95).

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

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

По числу одновременно работающих пользователей ОС делятся на:

- однопользовательские (MS-DOS, Windows 3.x, ранние версии OS/2);

- многопользовательские (UNIX, Windows NT).

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

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

В наши дни становится общепринятым введение в ОС функций поддержки многопроцессорной обработки данных. Такие функции имеются в операционных системах Solaris 2.x фирмы Sun, Open Server 3.x компании Santa Crus Operations, OS/2 фирмы IBM, Windows NT фирмы Microsoft и NetWare 4.1 фирмы Novell.

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

 

1.4.3 Особенности областей использования

 

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

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


<== попередня лекція | наступна лекція ==>
на курсовий проект (роботу) студента | Лабораторная работа 1. Организация линейной программы


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн