Главная Случайная страница


Категории:

ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника






Перечень вопросов для промежуточного и итогового контроля

Перечень вопросов для промежуточного и итогового контроля

1 Операционная система. Основные определения и понятия. Компоненты, назначение и состав ОС. Функции ОС.

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

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

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

· — время работы процессора;

· — адресное пространство основной памяти;

· — оборудование ввода-вывода;

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

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

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

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

В функции операционной системы входит:

· — осуществление диалога с пользователем;

· — ввод-вывод и управление данными;

· — планирование и организация процесса обработки программ;

· — распределение ресурсов (оперативной памяти и кэша, процессора, внешних устройств);

· — запуск программ на выполнение;

· — всевозможные вспомогательные операции обслуживания;

· — передача информации между различными внутренними устройствами;

· — программная поддержка работы периферийных устройств (дисплея, клавиатуры, дисковых накопителей, принтера и др.).

· — организация среды взаимодействия и обмена информацией между работающими программами.

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

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

· —однопользовательские однозадачные, которые могут выполняться только на одном компьютере, обслуживать только одного пользователя и работать только с одной (в данный момент) задачей. В настоящее время практически не используются;

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

· — многопользовательские многозадачные или серверные. Позволяющие на одном компьютере запускать несколько задач нескольким пользователям. Эти ОС наиболее сложны и требуют значительных машинных ресурсов.

На сегодняшний момент самой распространенной операционной системой на ПК является операционная система Windows фирмы Microsoft. Количество проданных копий Windows измеряется сотнями миллионов.

Основные понятия операционных систем

Исторические наработки и решения проблем привели к следующим основополагающим понятиям в теории ОС:

· Процессы и потоки
— Реализуют концепцию мультипрограммирования/многозадачности, переключения контекстов и вытесняющей многозадачности

· Управление памятью
— Кеширование, виртуальная память, защита и изоляция задач

· Безопасность
— Идентификация пользователей, защита данных

· Планирование и управление ресурсами
— Справедливое распределение процессорного времени на задачи

· Структура системы
— Послойный подход к дизайну ОС, разделение пользовательских программ и структур ядра

Процессы

Фундаментальное понятие ОС

Процесс – это выполняющаяся программа

· Код программы

· Ассоциированные с ней и необходимые ей данные (статические переменные, стек, буферы…)

· Контекст выполнения (состояние процесса)

Контекст выполнения очень важен для управления процессами

· Это структура данных, используемая ОС для управления процессом

· Сохраняет регистры процессора при переключении контекста

· Сохраняет приоритет процесса и другую информацию о состоянии

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

У операционных систем есть пять основных принципов управления устройствами хранения информации:

1. Изоляция процессов

2. Автоматическое выделение и управление памятью

3. Поддержка модульного программирования

4. Защита и контроль доступа

5. Долговременное хранение

Планирование и управление ресурсами

ОС управляет и выделяет ресурсы процессора и память

Политика выделения ресурсов должна опираться на:

· Эффективность: максимизация скорости

· Справедливость: все процессы должны обслуживаться справедливо

· Дифференцированность: у процессов может быть разный приоритет и разные требования

Расширенный (дополнительный) раздел

Основная таблица разделов MBR может содержать не более 4 первичных разделов, поэтому был изобретён Расширенный раздел (extended partition). Это первичный раздел, который не содержит собственной файловой системы, а содержит другие логические разделы. Количество расширенных разделов ограничено только размером диска. Данные о каждом разделе хранятся в отдельной расширенной загрузочной записи (EBR).

Наиболее известные

виртуальные машины:

* Java Virtual Machine

* Microsoft VirtualPC

* Microsoft Virtual Server

* Qemu

* VirtualBox

* VMWare Workstation

Загрузчик ОС - системное ПО, обеспечивающее загрузку ОС непосредственно после включения компьютера. Функции:

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

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

загружает ядро операционной системы в ОЗУ. Загрузка ядра операционной системы не обязательно происходит с жесткого диска. Загрузчик может получать ядро по сети. Ядро может храниться в ПЗУ или загружаться через последовательные интерфейсы (это может пригодиться на ранней стадии отладки создаваемой компьютерной системы);

формирует параметры, передаваемые ядру операционной системы (например, ядру Linux передаются параметры, указывающие способ подключения корневой файловой системы);

передаёт управление ядру операционной системы.

На компьютерах архитектуры IBM PC запуск загрузчика осуществляется программным обеспечением BIOS, записанной в ПЗУ компьютера, после успешного окончания процедуры POST. Распространённые загрузчики:

NTLDR - загрузчик ядра Windows NT

Windows Boot Manager (bootmgr.exe, winload.exe) - загрузчик ядра Windows Vista, Windows 7 и Windows 8

LILO - загрузчик, в основном применяемый для загрузки ядра Linux

GRUB (Grand Unified Bootloader) - применяется для загрузки ядра Linux

Loadlin - загружает Linux из-под DOS или Windows.

Syslinux - загружает Linux из-под DOS или Windows

Yaboot - загрузчик Linux на PowerPC

BootX - загрузчик Mac OS X

Plop Boot Manager, SyMon, Acronis OS Selector, Paragon Boot Manager, XorBoot - универсальные загрузчики всех ОС

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

Включение компьютера, POST, BootMonitor

Начальный этап загрузки операционной системы после включения компьютера начинается в BIOS (Basic Input/Output System — базовая система ввода-вывода). В настройках BIOS мы указываем загрузочное устройство, или ряд загрузочных устройств в порядке их приоритета. Возможны различные варианты загрузки и их комбинации: с жесткого диска, CD/DVD – диска, USB-flash и другие.

Сразу после прохождения POST (Power-On Self-Test — самотестирование после включения) BIOS компьютера начнет поочередно перебирать указанные загрузочные устройства до тех пор, пока на одном из них не найдет подходящую специальную запись, в которой содержится информация о дальнейших действиях.

Загрузчик 1-го уровня. Master Boot Record

Master Boot Record — главная загрузочная запись, расположена в первых физических секторах загрузочных устройств хранения. Она содержит таблицу разделов (Partition Table) и исполняемый код.

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

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

Загрузчик 2-го уровня. Partition Boot Sector

Следующим этапом загрузки компьютера является передача управления исполняемому коду, записанному в PBS (Partition Boot Sector — загрузочный сектор активного раздела). PBS расположен в первом секторе (секторах) соответствующего раздела диска. В коде PBS прописано имя файла загрузчика операционной системы, которому и передается управление на этом этапе.

Начальный этап загрузки операционной системы. Менеджер загрузки ОС

Первоначально в Linux загрузчиком являлся LILO (Linux Loader). В силу имевшихся в нем недостатков, главным из которых была неспособность понимать используемые в Linux файловые системы, позднее начал использоваться загрузчик GRUB (GRand Unified Bootloader) в котором недостатки LILO были исправлены.

Если речь идет о версиях Windows до Vista, например, Windows XP, то будет загружен Ntldr. Он, в свою очередь, считывает информацию из текстового файла Boot.ini, в котором записана информация об установленных операционных системах.

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

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

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

Меня попросили помочь одному человеку купить и привести в порядок компьютер для дома. Товарищ этот на тот момент времени только-только вышел на пенсию, а до этого работал в должности начальника и компьютер видел, по большей части, издалека, на столе у своей секретарши. После выхода на пенсию у него появилось время и желание компьютер освоить. Ну что, по-моему, замечательно. Компьютер мы ему подобрали недорогой, но добротный и с хорошим, по тем временам, монитором. Я поставил и настроил кое-какие программы, показал как ими пользоваться. Господин обзавелся книжкой из серии «Что-то там для чайников» и мы расстались абсолютно довольные друг другом.

Примерно через неделю мой подопечный позвонил мне по телефону и чуть не плача сообщил, что все пропало и компьютер больше не работает. Благо, запираться он не стал и честно рассказал, как было дело. А дело было так. Товарищ полез исследовать содержимое своего компьютера и нашел в корне диска С:\ несколько подозрительных и «ненужных», на его взгляд, файлов. Он решил освободить место и файлики эти попросту удалил. Думаю, что все уже догадались, что это были boot.ini, ntldr, ntdetect и др. Поправить ситуацию сложности не представляло, разве что пришлось ехать к нему еще раз.

К слову сказать, для того, чтобы получить проблемы с загрузкой Windows XP, можно было и ничего не стирать, а слегка «подправить», например, boot.ini.

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

3 Краткая эволюция ОС. Архитектура ОС. Классификация ОС. Сравнение операционных систем.

Симметричные ОС

Пакетная обработка (OS/360)

Разделение времени

Реальное время (VxWorks,QNX)

Аппаратная платформа

Малое количество программ

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

 

Описание функционала программы Windows Linux
Браузер Internet Explorer Firefox Opera Safari Firefox Opera Konqueror В каждом DE есть свой собственный
Почтовый клиент Outlook Outlook Express TheBat Thunderbird Thunderbird KMail Evolution
Файловый менеджер FAR, Total Commander Проводник Windows Konqueror Krusader MC Nautilus
Офисный пакет MS Office OpenOffice OpenOffice StarOffice KOffice
Распознавание текста FineReader FineReader CuneIForm
Автоматическое переключение раскладок PuntoSwitcher XNeur
Музыкальные проигрыватели Winamp Apollo Windows Media Player Xamp VLC Amarok MPlayer Kaffeine
Видеопроигрыватели Windows Media Player   VLC Amarok MPlayer DragonPlayer Kaffeine
Запись дисков Nero Встроенная писалка Windows K3B XCDRoast CDR Toaster. NeroLinux
Простой графический редактор Paint Kpaint. Tuxpaint. Xpaint.
Мощный графический редактор Adobe Photoshop Gimp. ImageMagick. CinePaint. RubyMagick.
Программы для работы с векторной графикой Adobe Illustrator, Corel Draw OpenOffice Draw. Dia. Tgif. Gestalter. ImPress. Tkpaint. Tgif Inkscape.
3D-графика 3D Studio MAX, Maya Blender. Maya. K3D
CAD-системы Autocad Compass QCad BricsCAD
Бухгалтерские программы 1С Парус 1С IceB

Как видно из таблицы, недостатка в программах под Linux нет. За то огромная разница в цене. Большинство программ под Linux бесплатны, а коммерческие - намного дешевле.
Рассмотрим еще и серверные приложения.
То, что большинство сайтов, почтовых систем и интернет-гейтов стоят на Linux ни для кого не секрет. Не так давно (около 1.5 года назад) даже Microsoft использовала почтовый релей на базе Postfix, как это не странно звучит. Обратимся к внутриофисным серверам

Что нам необходимо в офисной работе:
1.Файловый сервер
2.Контроллер домена.
3.Сервер совместной работы
4.CRM
5.ERP
6.Бухгалтерский сервер.

Разберем теперь подробнее организацию всего этого на базе Linux. Файловый сервер строится на базе Samba. Туда же подключаем OpenLDAP и получаем контроллер домена. В качестве сервера совместной работы отлично подходит eGroupWare. SugarCRM - вообще одна из лучших CRM-систем. OpenERP работает на многих предприятиях - главное ее правильно настроить. А знаменитая 1С - отлично работает и на Linux. Кого по идеологическим соображениям 1С не устраивает - всегда можно развернуть бесплатную IceB.
Скажу честно - разговоры о недостатке качественных программ под Linux меня просто веселят. Так могут говорить только те, кто никогда не искал замены Windows-программам.

Сложность настройки.

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

Малое количество игр.

На самом деле под Linux игр не так уж и мало. Тем более что многие из новых игр очень неплохо идут и под эмулятором Windows - Wine, например S.T.A.L.K.E.R.
Так же следует обратить внимание на то, что в последнее время компании начали (а некоторые продолжают) выпускать свои игры и под Linux. За последнее время открытие кода игр и выпуск игровых движков под Linux объявили Frictional Games, Wolfire и Valve.
Не смотря на это мне кажется, что наличие игр далеко не обязательно для офисного компьютера.

Отсутствие техподдержки.

Техподдержки по Linux на сегодня предостаточно. Можно, например, выбрать коммерческую поддержку от производителя. Она осуществляется:
1.Canonical
2.Red Hat
3.Suse
4.AltLinux
5.И другими компаниями-разработчиками
Еще следует обратить внимание, что большинство дистрибутивов имеют свои комьюнити, сайты и форумы, где всегда можно задать вопрос и решить проблему оперативно и бесплатно.

Состав операционной системы

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

Большинство ОС состоит из следующих основных модулей: базовая система ввода-вывода (BIOS – Basic Input Output System); загрузчик операционной системы (Boot Record); ядро ОС; драйверы устройств; командный процессор; внешние команды (файлы).

Базовая система ввода-вывода (BIOS) – это набор микропрограмм, реализующих основные низкоуровневые (элементарные) операции ввода-вывода. Они хранятся в ПЗУ компьютера и записываются туда при изготовлении материнской платы. Данная система, по сути, «встроена» в компьютер и является одновременно его аппаратной частью и частью операционной системы.

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

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

Еще одна важная функция BIOS – обслуживание прерываний. При возникновении определенных событий (нажатие клавиши на клавиатуре, щелчок мыши, ошибка в программе и т.д.) вызывается одна из стандартных подпрограмм BIOS по обработке возникшей ситуации.

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

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

- файловая система (отвечает за размещение информации на устройствах хранения);

- система управления памятью (размещает программы в памяти);

- система управления программами (осуществляет запуск и выполнение программ);

- система связи с драйверами устройств (отвечает за взаимодействие с внешними устройствами);

- система обработки ошибок;

- служба времени (предоставляет всем программам информацию о системном времени).

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

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

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

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

Основные компоненты операционной системы.Основные типы операционных систем

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

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

2. Операционные системы делятся на однопользовательские и многозадачные, с текстовым или с графическим интерфейсом.
Операционная система MS DOS является однопользовательской однозадачной ОС с текстовым (командным) интерфейсом. В такой операционной системе в каждый момент работает один пользователь, он может одновременно запустить одну (максимум две программы) и общается с ОС, набирая текстовые команды.

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

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

Традиционно к ОС предъявлялись следующие дополнительные требования:

- прозрачность (незаметность работы) служебных программ;

- гарантированная надежность;

- максимальная скорость выполнения;

- минимальный машинный код;

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

Кроме этого, современная операционная система должна обладать свойствами:

Расширяемости, совместимости, переносимости, безопасности, надежности и отказоустойчивости.

Расширяемость

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

Расширяемость может достигаться за счет:

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

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

- структурирования ОС по типу клиент-сервер с использованием Микроядерной технологии;

- использования средств вызова удаленных процедур (RPC). Новые программные процедуры могут быть добавлены в любую машину сети и немедленно поступить в распоряжение прикладных программ на других машинах сети.

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

Переносимость

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

- использовать язык высокого уровня. Большинство переносимых ОС написано на языке С потому, что он стандартизован и С-компиляторы широко доступны;

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

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

Совместимость

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

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

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

- поддержке вызовов API-функций новой ОС;

- соответствии внутренней структуры исполняемого файла правилам новой ОС.

Для достижения двоичной совместимости в случае различных архитектур кроме этих мер необходимы либо:

- эмуляция (довольно просто, но обычно очень медленно), либо

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

- система виртуальных машин (СВМ) (см. рис. 1.1).

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

Рис. 1.1 Вариант виртуальной машины

Первой реальной системой такого рода была система CP/CMS или VM/370, как ее называют сейчас, для семейства машин IBM/370.

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

Архитектура – это базовая организация системы, воплощенная в ее компонентах, их отношениях между собой и с окружением, а также принципы, определяющие проектирование и развитие системы [IEE[1471] .

Именно архитектура ОС должна обеспечить:

¾ расширяемость ОС

¾ переносимость ОС

¾ совместимость различных ОС

Существует два способа структуризации ОС:

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

В соответствии с этим способом структуризации выделяют следующий состав компонентов (подсистем) ОС:

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

2. управление памятью

3. управление файлами

4. управление внешними устройствами

5. защита данных

6. администрирование

7. интерфейс прикладного программирования

8. пользовательский интерфейс

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

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

Другой характеристикой ядра может служить его режим работы. Все современные процессоры поддерживают как минимум два режима:

¾ привилегированный (он же режим ядра) kernel mode

¾ непривилегированный (режим задачи пользователя) user mode

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

· его командам

· адресам

· регистрам

· портам ввода-вывода

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

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

Смена режимов при выполнении функции ядра

       
       

 

Работа Пользовательский t – время переключения

приложения режим режимов

t Работа t

ядра

 

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

Ядро включает модули, выполняющие основные функции ОС:

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

2. управление памятью

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

4. прочее

К транзитным частям ОС относятся:

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

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

- интерпретатор команд (программа, выполняющая ввод команд пользователя, их анализ и вызов других модулей для выполнения команд)

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

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

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

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

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

 

5 Множественные прикладные среды. Совместимость.

Типы операций

Наиболее полную классификацию операций ввода-вывода по их типам (наилучшую из известных мне) дал У. Р. Стивенс в книге "UNIX Network Programming. Networking APIs" (см. раздел "Ресурсы"). В ней он выделяет 5 принципиально различающихся типов операций:

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

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

3. мультиплексирование ввода-вывода (функции select() и poll()): когда выполнение операции ожидается на более, чем одном дескрипторе файла;

4. ввод-вывод, управляемый сигналом (сигнал SIGIO): когда ввод-вывод инициирует начало операции, приложение при этом не блокируется, а о готовности данных к копированию в буфер приложения оно асинхронно уведомляется сигналом UNIX;

5. асинхронный ввод-вывод (функции из стандарта реального времени POSIX.1g вида aio_*()): такие функции ввода-вывода только инициируют начало выполнения операции, не блокируя приложение; приложение уведомляется асинхронно о завершении выполнения операции, и в отличии от предыдущего случая уведомление содержит сигнал не о возможности начала копирования данных, а о <

Последнее изменение этой страницы: 2016-06-09

lectmania.ru. Все права принадлежат авторам данных материалов. В случае нарушения авторского права напишите нам сюда...