02.03.2024

Операционни системи чете онлайн. Книги за операционни системи за студенти и ученици. М. Русинович - Вътрешна структура на Microsoft Windows


Изтегляния: 8365

Най-известната от всички операционни системи в момента несъмнено е семейството Windows на Microsoft Corporation. Въпреки популярността си обаче, Windows не е първата или единствената операционна система в света.


28.04.2014
Нейтън Уолъс, Антъни Секуейра - Регистър на Windows® 2000

Изтегляния: 596

Първо и най-важно бихме искали да благодарим на Шарлот Карпентиер, редактор по придобиванията в Coriolis. Също така, специални благодарности на Грег Балас, който беше редактор на проекта, и Пеги Кантрел, която беше координатор на продукцията на книгата.


27.04.2014
А. Чекмарев - Ръководство на администратора на Windows 7

Изтегляния: 12818

Ръководството за операционна система Microsoft Windows 7 е насочено към напреднали потребители и мрежови администратори. Разкриват се многобройните възможности на всички издания на Windows 7, подробно се обсъждат всички аспекти на използването на системата: от инсталацията до методите за възстановяване.


27.04.2014
М. Русинович - Вътрешна структура на Microsoft Windows

Изтегляния: 9066

Шестото издание на тази легендарна книга е посветено на вътрешната структура и алгоритмите на работа на основните компоненти на операционната система Microsoft Windows 7, както и на Windows Server 2008 R2.


17.04.2014
Ричард Саймън - Microsoft Windows API. Наръчник на системния програмист

Изтегляния: 8967

Операционните системи от фамилията Windows изведоха методологията за разработване на приложни приложения, които работят под контрола на тези операционни системи, на напълно ново качествено ниво. Въпреки изобилието от мощни инструменти за създаване на софтуер, познаването на интерфейса за програмиране на приложения (API) - основите на всичко това - е ключът към писането на програми, които могат да постигнат достойна позиция на пазара.


17.04.2014
Арнолд Робинс, Елбърт Хана и Линда Ламб - Изучаване на редакторите на vi и Vim. 7-мо изд.

Изтегляния: 799

Няма нищо, към което закоравелите потребители на Unix и Linux да са по-фанатични от техния текстов редактор. Редакторите са обект на обожание и преклонение, или на презрение и подигравка, в зависимост от това дали темата на дискусия е вашият редактор или някой друг" с. vi е стандартният редактор от близо 30 години. Популярен в Unix и Linux, той има нарастващи последователи и в Windows системи. Повечето опитни системни администратори citevi като техен инструмент по избор. И от 1986 г. тази книга е ръководството за vi.


OS/2, VMS, VAX, Win32, UNIX - с тези операционни системи ще се запознае читателят на “Въведение в операционните системи” от Д.В. Архитектурата на ОС, разпределението на паметта, файловите системи, сигурността и много други са обхванати в този урок.

Съвременният потребител, разбира се, е запознат с операционните системи от семейството Win32, но е малко вероятно да знае за съществуването на самото това семейство; той може да е чувал за нещо, наречено Linux, но всички UNIX-подобни операционни системи му пречат без да прави разлика между тях, той почти не си спомня такава система като OS/2 и със сигурност не знае, че настоящият клон на семейството на MS Windows дължи съществуването си на нея. Той със сигурност няма ни най-малка представа за операционна система, която е изключително специфична за банки и отбранителни структури, като VMS. Учебникът "Въведение в операционните системи" запълва тази празнина в обучението на читателя, като говори за архитектурата на всички тези операционни системи, техните файлови системи, работа с хардуер и събития, прилагане на многозадачност и обработка на транзакции, системи за сигурност на операционната система и други въпроси, които са абсолютно необходими на бъдещите специалисти в областта на компютърните технологии.

Днес е трудно да си представим съвременен човек, който не притежава компютър. И за да работи ефективно с тази техника, потребителят трябва да разбира различните файлови формати на Microsoft Windows. Най-популярните текстови, графични и аудио формати включват TeX, PDF, TIFF, HTML, GIF, AVI, MPEG, JPEG, CGML, MIME, QuickTime, PNDZIP, VRML, XXE, UUE, WAVE и др.

Книгата разказва как правилно да разопаковате файлове, които са били компресирани от различни архиватори, и как правилно да кодирате и декодирате данни. След като проучи справочника „Файлови формати на Microsoft Windows XP“ (автор Борис Леонтиев), читателят ще се научи да идентифицира „следите“ на тези помощни програми, които са засегнали файловете, които са се озовали на неговия компютър.

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

Учебник Е. Таненбаум, А. Уудхъл „Операционни системи. Разработка и внедряване" е допълнително оборудван с компактдиск, съдържащ изходния код на работеща UNIX-съвместима MINIX OS. Това дава възможност да се разгледат подробно на практика особеностите на работата на всеки от неговите компоненти и операционната система като цяло.

Публикацията, предназначена за тези, които се интересуват от съвременните софтуерни разработки и разработването на продукти на Microsoft, разказва за приложенията на платформата 2003 г., събрана от „Първа ръка“ - „Алманахът на програмиста“ е създаден на базата от списания, чиито автори са разработчиците и тестерите на обсъжданите приложения.

Този учебник е вече във второ издание и е официално препоръчан учебник от Министерството на образованието на Русия. Той последователно описва структурата на UNIX системите - тяхната архитектура, интерфейси, рутинни процедури, взаимодействие с хардуера и мрежово взаимодействие. Книгата „Операционна система UNIX” на Робачевски и Немнюгин е актуализирана в съответствие с изискванията на времето и ще бъде полезна за професионални програмисти и системни администратори.

Публикацията е посветена на основните механизми на операционната система Windows. Книгата обхваща всички етапи на операциите, от достъп до регистър на процесора до показване на GUI съобщение на екрана. Много внимание се обръща на преходите на системата от един режим в друг, причините за появата на „сините екрани на смъртта“ и характеристиките на файловата система NTFS. Книгата на Русинович „Вътрешната структура на Microsoft Windows: Windows Server 2003, Windows XP, Windows 2000. Майсторски клас“ е колекция от информация, която е най-полезна за системните администратори на големи организации и служителите на сервизните центрове.

Този учебник е създаден от преподаватели от Санкт Петербургския държавен университет по аерокосмическо приборостроене въз основа на материали от едноименния курс. Книгата се отличава със своя обем и гъвкавост - включва разглеждане на въпроси от най-простите, по-специално от основните концепции на системното програмиране, до доста сложни. Например към характеристиките на микроархитектурата на x86 процесорите. Съответствието с държавния стандарт ви позволява да използвате „Системния софтуер“ на Гордеев и Молчанов като ръководство за подготовка за тестове за знания. Основната стойност на книгата обаче е нейната полезност в практическата дейност на системен администратор или програмист.

Книгата описва възможностите и уязвимостите на системата Windows 2000, които малко хора познават и рядко се използват. Състои се от няколко големи глави, предназначени да подобрят уменията на професионалистите, и приложения със списъци с команди на Kernel Debugger, API функции на ядрото и елементи от рутинни процедури на OS. В „Недокументирани функции на Windows 2000“ Свен Шрайбер говори за работа с Native API, използване на механизми за отстраняване на грешки на Windows 2000 и изследване на неговата памет, достъп до системното ядро ​​от потребителски режим, разработване на драйвери за режим на ядрото и много други. Така че книгата ще бъде полезна за специалисти, които искат да създават най-ефективните приложения и са готови да разберат работата на Microsoft на изключително дълбоко ниво.

Написан от професионален разработчик, справочникът и урокът за Windows Embedded ще бъде полезен не само за начинаещи, но и за професионални програмисти, тъй като съдържа широк набор от практическа информация - от „съвети за начинаещи“ до професионалните тайни на автора.

Microsoft Windows Embedded 2009 е най-стабилната и широко разпространена от всички вградени Windows системи днес, създадена на базата на Windows XP. Въпреки всичките си прилики с XP, той все пак е достатъчно различен от своя предшественик, така че да се научите да програмирате за него изисква отделно изучаване. Книгата на Станислав Павлов „Основи на Windows Embedded Standard 2009“ обхваща не само техническите проблеми, пред които е изправен разработчикът на Windows Embedded софтуер, но и друга практическа информация, за която авторът на учебника пише въз основа на личен професионален опит.

Ръководството ще бъде полезно както за начинаещи разработчици - при условие че последователно усвояват материала глава по глава - така и за професионални програмисти, които ще намерят тук много полезна справочна информация. Опитните разработчици също ще се възползват от професионалните съвети на автора, които също са подкрепени от „живи“ практически примери.

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

Одобрена от Министерството на образованието, тази книга е предназначена за студенти от специалност „Информатика и компютърни науки” като учебник по предмета „Операционни системи” и студенти, изучаващи теоретичната страна на компютърните науки в нейното първоначално разбиране, т.е. „наука за обработка на информация“. Тук няма да намерите информация за сглобяване на системното ядро ​​за конкретен процесор, настройка на режими на видеокарта или оптимизиране на файловата система, управление на ролите на потребители и групи - за разлика от много семинари и справочници, посветени на Windows или Unix, този урок разглежда това от чисто теоретична гледна точка гледни точки относно концепцията за операционните системи като такива. Фундаменталните принципи на дизайна на операционната система, обсъдени в тази книга, са валидни за почти всички съществуващи днес операционни системи.

За практикуващите ИТ специалисти учебникът „Мрежови операционни системи“ от Наталия и Виктор Олиферови може да бъде полезен и като източник на „академични“ знания при интервюиране в компании, където се фокусират основно върху академичния характер на официалното образование, а не върху практическите умения. на кандидатите.

1Първи стъпки с операционни системи

1.1 Предназначение и функции на операционните системи

Компютърната операционна система е набор от взаимосвързани програми, които действат като интерфейс между приложенията и потребителите, от една страна, и компютърния хардуер, от друга. Операционната система изпълнява две групи функции:

Предоставя на потребителя или програмиста разширена виртуална машина вместо реален компютърен хардуер;

Повишава ефективността на използването на компютъра чрез рационално управление на неговите ресурси в съответствие с някакъв критерий.

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

В същото време операционната система действа като мениджър на ресурси. Според този подход работата на операционната система е да осигури организирано и контролирано разпределение на процесори, памет и I/O устройства между различни програми. Операционната система има следните характеристики:

Функциите на операционната система работят по същия начин като другия софтуер – реализирани са под формата на отделни програми или набор от програми, изпълняващи процеси;

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

Управлението на ресурсите включва решаване на следните общи задачи, които не зависят от вида на ресурса:

Планиране на ресурсите – т.е. определяне на кой процес, кога и в какво количество (ако ресурсът може да бъде разпределен на части) трябва да бъде разпределен даден ресурс;

Задоволяване на заявки за ресурси;

Следене на статуса и записване на използването на даден ресурс – тоест поддържане на оперативна информация дали ресурсът е зает или свободен и какъв дял от ресурса вече е разпределен;

Разрешаване на конфликти между процесите.

Управлението на ресурсите включва тяхното мултиплексиране (разпределение) по два начина: във времето и в пространството. Когато даден ресурс се разпределя с течение на времето, различни потребители и програми се редуват да го използват. Първо една от тях получава достъп за използване на ресурса, след това друга и т.н. Например няколко програми искат достъп до централния процесор. В тази ситуация операционната система първо позволява достъп до процесора на една програма, след това, след като е работила достатъчно време, на друга програма, след това на следващата и накрая отново на първата. Определянето колко време ще се използва даден ресурс във времето, кой ще бъде следващият и за колко време ще му бъде предоставен ресурсът е задача на операционната система. Друг вид разпределение е пространственото мултиплексиране. Вместо да работи алтернативно, всеки клиент получава част от ресурса. Обикновено RAM се споделя между няколко работещи програми, така че всички те да могат да се намират в паметта едновременно (например, като използват централния процесор на свой ред). Ако приемем, че имате достатъчно памет за съхранение на множество програми, по-ефективно е да поставите няколко програми в паметта наведнъж, отколкото да разпределите цялата памет за една програма, особено ако тя се нуждае само от малка част от наличната памет. Разбира се, това повдига въпроси за справедливо разпределение, защита на паметта и т.н., а операционната система съществува, за да разрешава такива проблеми.

1.2 История на развитието на операционните системи

Обикновено историята на развитието на операционните системи се свързва с историята на развитието на компютрите. Първата идея за компютър е предложена от английския математик Чарлз Бабидж в средата на деветнадесети век. Той разработва така наречената механична „аналитична машина“, която обаче така и не заработи правилно. Следват поколения компютри и връзката им с операционните системи.

Първо поколение 1945-1955г

Компютрите се състоят от вакуумни тръби и съединителни панели. Най-високото постижение е производството на перфокарти. Изработена от тънък картон, перфорираната карта представлява информация чрез наличието или отсъствието на дупки на определени позиции на картата. Няма операционна система.

Второ поколение 1955-1965г

Основата на компютрите са транзистори и системи за пакетна обработка. Характеризира се с тестета перфокарти и устройства за запис на магнитни ленти. Основно програмиран на Fortran и асемблерни езици за Fortran Monitor System (FMS) и операционните системи IBSYS.

Трето поколение 1965-1980г

Периодът се характеризира с появата на интегрални схеми, както и многозадачност или, както се нарича по друг начин, мултипрограмиране. IBM произвежда различни серии машини, като се започне с IBM/360. За тях е написана операционната система OS/360, която е приблизително 1000 пъти по-голяма от второто поколение FMS. На този етап се появява индустриална реализация на многозадачност - метод за организиране на изчислителен процес, при който няколко програми се съхраняват едновременно в паметта на компютъра и се изпълняват последователно на един процесор.

Други забележителни операционни системи от този период са CTSS (Съвместима система за споделяне на времето) и MULTICS (Мултиплексна информационна и компютърна услуга), която е проектирана да осигури достъп до една машина за стотици потребители наведнъж. По-нататъшното развитие на тази система прерасна в UNIX.

Четвърто поколение 1980-настояще

Този период е свързан с появата на мащабни интегрални схеми. През 1974 г. Intel пусна първия универсален 8-битов процесор, Intel 8080. В началото на 80-те IBM разработи IBM PC, персонален компютър. По същото време се появи и първата версия на MS-DOS. Всички разработени до този момент операционни системи поддържаха само текстов режим на комуникация с потребителя.

Първият опит за създаване на удобен за потребителя графичен интерфейс беше реализиран на Apple Macintosh. Повлияна от своите успехи, Microsoft Corporation пуска графична обвивка за MS-DOS - Windows. И от 1995 г. беше пуснат Windows 95, който стана самостоятелна система. Впоследствие на базата на Windows 95 и друга система Windows NT са разработени съществуващите в момента операционни системи - Windows 2000, XP, Vista и др.

1.3 Класификация на операционните системи

Има много операционни системи и не всеки ги познава. След това разглеждаме 7 вида различни операционни системи от големи до малки нива.

Мейнфрейм операционни системи

Мейнфреймът е високопроизводителен компютър с общо предназначение със значително количество RAM и външна памет, предназначен да извършва интензивна изчислителна работа. Това обикновено са компютри с размер на стая и се намират в големи корпорации. Мейнфреймите обикновено съдържат хиляди дискове и терабайти RAM.

Мейнфрейм операционните системи са проектирани основно да обработват множество едновременни задачи, повечето от които изискват огромно количество I/O. Системата трябва да отговаря на хиляди заявки в секунда. Пример за това е OS/390, която еволюира от 3-то поколение операционна система OS/360.

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

Тези операционни системи работят на сървъри, които са персонален компютър, работна станция или дори мейнфрейм. Сървърите предоставят възможност за работа с печатащи устройства, файлове или интернет. Такива операционни системи включват Unix, Linux, Windows 2003 Server и др.

Многопроцесорни операционни системи

Тези системи се използват на компютри с множество централни процесори. Те изискват специални операционни системи, но обикновено са модификации на сървърни операционни системи.

Операционни системи за персонални компютри

Основният критерий на тези системи е удобен интерфейс за един потребител. Най-известните системи: Windows 98, 2000, XP, серия Vista; Macintosh, Linux.

Операционни системи в реално време

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

Вградени операционни системи

Те включват PDA (Personal Digital Assistant) операционни системи. Освен това вградените системи работят с автомобили, телевизори и мобилни телефони. Тези операционни системи обикновено имат всички характеристики на операционни системи в реално време с ограничения на паметта, мощността и т.н. Примери за системи са PalmOS, Windows CE.

Операционни системи за смарт карти

Смарт картата е устройство с размер на кредитна карта, съдържащо централен процесор. Такива системи са обект на сериозни ограничения на мощността и паметта. Някои управляват само една операция - електронно плащане, например. Избрани смарт карти включват поддръжка за Java Virtual Machine.

1.4 Преглед на компютърния хардуер

Операционната система е тясно свързана с хардуера на компютъра, на който трябва да работи. Хардуерът влияе върху набора от команди на операционната система и управлението на нейните ресурси. Концептуално един прост компютър може да бъде представен от модела, показан на фигура 1. Тази структура се използва при първите модели на IBM PC.

Фигура 1 - Някои компоненти на персонален компютър


На фигурата централния процесор, паметта и входно/изходните устройства са свързани чрез системна шина, чрез която обменят информация.

процесор

„Мозъкът“ на компютъра е централния процесор (CPU). Той избира команди от паметта и ги изпълнява. Типичният процесорен цикъл изглежда така: чете първата инструкция от паметта, декодира я, за да определи нейния тип и операнди, изпълнява инструкцията, след което чете и декодира следващите инструкции. Ето как се изпълняват програмите.

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

Когато процесорът е мултиплексиран във времето, операционната система спира работеща програма, за да стартира друга. Всеки път, когато възникне такова прекъсване, операционната система трябва да запази всички регистри на процесора, така че по-късно, когато прекъснатата програма продължи да работи, те могат да бъдат възстановени.

За да увеличат скоростта на процесора, техните разработчици изоставиха простия модел, когато само една команда може да бъде прочетена, декодирана и изпълнена в един такт. Съвременните процесори имат способността да изпълняват няколко команди едновременно.

Повечето процесори имат два режима на работа: режим на ядрото и потребителски режим. Ако процесорът работи в режим на ядрото, той може да изпълни всички инструкции в набора от инструкции и да използва всички възможности на хардуера. Операционната система работи в режим на ядро, осигурявайки достъп до целия хардуер. За разлика от това, потребителите работят в потребителски режим, който позволява изпълнението на подмножество от програми и прави наличен само част от хардуера.

памет

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

Системата за памет е изградена под формата на йерархия от слоеве, които са илюстрирани на фигура 2. Докато се движите през йерархията отгоре надолу, два параметъра се увеличават: време за достъп, размер на паметта.

Най-горният слой се състои от вътрешните регистри на процесора, така че няма забавяне при достъп до тях. Вътрешните регистри съхраняват по-малко от 1Kb информация. Програмите могат да манипулират регистри без хардуерна намеса. Достъпът до регистрите е най-бърз - няколко наносекунди.

Следващият слой съдържа кеш памет, управлявана предимно от хардуер. Най-често използваните кеш области се съхраняват във високоскоростна кеш памет, разположена вътре в процесора. Когато една програма трябва да прочете дума от паметта, кеш чипът определя дали желаният ред е в кеша; ако е така, тогава се осъществява достъп до кеша. Кеш паметта е ограничена по размер поради високата си цена. Съвременните машини имат две или три нива на кеш памет, всяко от които е по-бавно и по-голямо от предишното. Размерите на кеш паметта варират от десетки килобайта до няколко мегабайта. Времето за достъп е малко по-дълго, отколкото при регистрите.


Фигура 2 – Йерархична структура на паметта


Следва RAM (RAM - Random Access Memory или памет с произволен достъп) - основната работна зона на устройството за съхранение на машината. Всички заявки на процесора, които не могат да бъдат изпълнени от кеш паметта, се изпращат към RAM за обработка. Обемите варират от стотици мегабайта до няколко гигабайта. Времето за достъп е десетки наносекунди.

Следва магнитният диск. Дисковата памет е два порядъка по-евтина от RAM на бит и два порядъка по-голяма по размер. Дискът има един проблем - произволният достъп до данните на него отнема около три порядъка повече време. Причината за ниската скорост на твърдите дискове (HDD) е, че устройството е механична структура. Състои се от една или повече метални плочи, въртящи се с определени скорости, като например 7200 rpm. Дисковите обеми сега растат бързо; дискове със стотици гигабайти се продават за повечето потребители. Време за достъп – не по-малко от 10 µs.

Магнитната лента често се използва за създаване на резервни копия на HDD или за съхраняване на много големи набори от данни. Сега, разбира се, рядко можете да намерите използването на магнитни ленти, но все пак те все още не са излезли от употреба. Нивото на магнитната лента включва също CD, DVD и флаш памет. Времето за достъп се измерва в секунди.

В допълнение към описаните типове, компютрите имат малко количество постоянна памет с произволен достъп. За разлика от RAM, тя не губи съдържанието си при изключване на захранването. Нарича се ROM или ROM. ROM е програмиран по време на производството и съдържанието му не може да се променя след това. Тази памет е доста бърза и евтина. Програмите за зареждане на компютъра, използвани при стартиране, се намират в ROM. В допълнение, някои I/O карти съдържат ROM за управление на устройства от ниско ниво. Тип памет, наречен CMOS, е летлив. CMOS се използва за съхраняване на текущата дата, час и конфигурационни параметри, като например от кой твърд диск да се стартира. Тази памет черпи енергия от инсталираната батерия.

I/O устройства

Операционната система третира I/O устройствата като ресурси. I/O устройствата обикновено се състоят от контролер и самото устройство.

Контролерът е набор от чипове на платка, поставена в конектор, физическо устройство за управление. Той приема команди на операционната система (например инструкции за четене на данни от устройство) и ги изпълнява. Действителното управление на устройството е много сложно и изисква високо ниво на детайлност. Следователно функцията на контролера е да осигури прост интерфейс на операционната система.

Следващата част е самото устройство. Устройствата имат доста прости интерфейси, тъй като техните възможности са ограничени и трябва да бъдат приведени към един стандарт. Необходим е единен стандарт, например, така че всеки IDE дисков контролер (Integrated Drive Electronics) да може да управлява всеки IDE диск. Интерфейсът IDE е стандартен за устройства на компютри с процесор Pentium, както и на други компютри. Тъй като действителният интерфейс на устройството е скрит от контролера, операционната система вижда само интерфейса на контролера, който може да е много различен от интерфейса на самото устройство.

Тъй като всеки тип контролер е различен, те изискват различен софтуер. Програмата, която комуникира с контролера, е драйверът на устройството. Всеки производител на контролер трябва да предостави драйвери за поддържаните операционни системи. За да използвате драйвера, той трябва да бъде инсталиран в операционната система, така че да може да работи в режим на ядрото. Има три начина за инсталиране на драйвер в ядрото:

Преизградете ядрото заедно с нов драйвер и след това рестартирайте операционната система (това работят много Unix операционни системи);

Създайте запис във файла, включен в операционната система, указващ, че е необходим драйвер и след това рестартирайте системата; по време на първоначалното зареждане операционната система сама намира необходимите драйвери и ги зарежда (така работи Windows);

Операционната система може да приема нови драйвери, без да прекъсва работата, и бързо да ги инсталира, без да изисква рестартиране. Този метод става все по-разпространен. Устройства като USB шини, IEEE 1394 винаги изискват динамично заредени драйвери.

Въвеждането и извеждането на данни може да се извърши по три различни начина.

Най-простият начин: потребителската програма издава системна заявка, която ядрото преобразува в извикване на процедура, съответстваща на драйвера, след което драйверът започва I/O процеса. През това време той извършва кратък програмен цикъл, като непрекъснато анкетира устройството, с което работи. Когато I/O завърши, драйверът поставя данните там, където са необходими, и се връща в първоначалното си състояние. След това операционната система връща контрола на програмата, която е направила повикването. Този метод е в очакване на готовност (активно изчакване). Има един недостатък: процесорът трябва да анкетира устройството, докато не се изключи.

Драйверът стартира устройството и го моли да издаде прекъсвания, когато I/O приключи; След това драйверът връща управлението на операционната система и тя започва да изпълнява други задачи. Когато контролерът открие края на трансфера на данни, той генерира прекъсване за завършване. I/O процесът, използващ прекъсвания, се състои от четири стъпки (Фигура 3). На първата стъпка драйверът предава команда на контролера, записвайки информация в регистрите на устройството. След това контролерът стартира устройството. Когато контролерът приключи с четенето или записването на броя байтове, които му е казано да прехвърли, той изпраща сигнал до чипа на контролера за прекъсване, използвайки специфични проводници на шина. Това е втора стъпка. В третата стъпка, ако контролерът на прекъсванията е готов да обработва прекъсвания, тогава той изпраща сигнал до определен пин на процесора, като по този начин го информира. В четвъртата стъпка контролерът за прекъсване вмъква номер на устройство в шината, така че процесорът да знае кое устройство е завършило работата си.

Третият метод за въвеждане/извеждане на информация е използването на специален DMA (Direct Memory Access) контролер. DMA управлява потока от битове между RAM и някои контролери без намеса на процесора. Процесорът получава достъп до DMA чипа, казва му броя байтове за прехвърляне, както и адреса на устройството и паметта и посоката на прехвърляне на данни. След завършване на работата, DMA инициира прекъсване, което се обработва по обичайния начин.


Фигура 3 - Действия, извършвани, когато I/O устройство стартира и получи прекъсване


Гуми

Поради увеличаването на скоростта на процесора и паметта, към системата бяха добавени допълнителни шини както за ускоряване на комуникацията на I/O устройствата, така и за прехвърляне на данни между процесора и паметта. Фигура 4 показва диаграма на изчислителната система на първите Pentium.

Тази система има 8 шини (кеш шина, локална шина, шина на паметта, PCI, SCSI, USB, IDE, ISA), всяка със собствена скорост на трансфер на данни и свои собствени функции. Операционната система трябва да има информация за всички тези шини, за да управлява компютъра.

Централният процесор предава данни чрез локалната шина към PCI мостовия чип, който от своя страна осъществява достъп до паметта чрез специална шина. Системата Pentium I има кеш от ниво 1 (L1), вграден в процесора, и много по-голям кеш от ниво 2 (L2), свързан към процесора на отделна кеш шина. Шината IDE се използва за свързване на периферни устройства към системата (CD-ROM, твърд диск).


Фигура 4 – Структура на системата Pentium


USB (Universal Serial Bus) шината е предназначена за свързване на допълнителни входно/изходни устройства като клавиатура, мишка, принтер, флаш памет и др. към компютър. С времето се появяват и добавят нови, по-бързи гуми.

Андрей Робачевски

Операционна система UNIX

Благодарности

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

На първо място, това е заслуга на директора на издателство "BHV-Санкт Петербург" Вадим Сергеев и моя колега, служител на Vuztelecomcenter и автор на прекрасната директория "Жълтите страници на Интернет. Руски ресурси" Алексей Сигалов. Именно те ме убедиха, че подобна книга би била полезна и ме вдъхновиха да хвана писалката.

Благодарен съм на ръководителите на Vuztelecomcenter Владимир Василиев и Сергей Хоружников за тяхната помощ и внимание към работата по книгата. Тяхната подкрепа и толерантно отношение към изпълнението на основните ми задължения като директор по развитието на Vuztelecomcenter ми позволиха да завърша тази работа.

Без помощта на Кирил Шчукин имаше опасност книгата да бъде издадена без илюстрации, които едва ли биха я направили по-ясна. Неговото търпение и професионализъм направиха възможно превръщането на неясни скици в пълноценни диаграми, от които книгата много се възползва.

Многократно съм търсил съвети от UNIX експерти и най-вече от моя колега Константин Федоров. Неговите ценни коментари и препоръки ми помогнаха да доведа книгата до сегашния й вид.

Бих искал също така да изразя своята благодарност на специалистите от OLLY, и по-специално на техническия директор Виталий Кузмичев, чиито съвети и консултации оказаха благотворно влияние върху съдържанието на тази книга.

Бих искал също така да изразя дълбоката си благодарност към рецензентите на тази книга - Dr. Катедра по компютърни науки, Държавен електротехнически университет в Санкт Петербург, доктор на техническите науки. Професор Д.В. Пузанков и гл. Катедра по информационни и управляващи системи, Държавен технически университет в Санкт Петербург, доктор на техническите науки. Професор И.Г. Черноруцки за полезни коментари.

Бих искал също да благодаря на ръководителя. редакторите на издателство "BHV-Санкт Петербург" Елизавета Кароник, която първа се запозна с ръкописа и даде положителна присъда, за нейния кредит на доверие и координация на работата по създаването на книгата. Бих искал да изразя своята благодарност на Татяна Темкина за отличната й работа по редактирането на книгата. Случваше се отделни страници от ръкописа да съдържат по-малко основен материал от редакционните промени, с които аз по правило винаги се съгласявах.

Не мога да не изкажа своята благодарност на моите колеги Владимир Парфенов, Юрий Гугел, Юрий Кирчин, Нина Рубина, чиято приятелска подкрепа беше толкова полезна.

И, разбира се, бих искал да благодаря на съпругата и дъщеря ми за тяхното търпение и вяра в успешното завършване на тази работа. Трябва да им се извиня и за това, че тази работа отне значителна част от времето ми, което по право им принадлежеше.

Относно книгата „Операционна система UNIX“

Посветен на любимите ми хора

Предназначение на книгата

Тази книга не е заместител на справочници и различни ръководства за операционната система UNIX. Освен това информацията, представена в книгата, понякога е трудна за намиране в документацията, предоставена с операционната система. Тези публикации са пълни с практически препоръки, щателни описания на настройките на определени подсистеми, формати за извикване на команди и др. В същото време въпроси като вътрешната архитектура на отделните системни компоненти, тяхното взаимодействие и принципи на работа често остават зад кулисите. Без познаване на тази „анатомия“ работата в операционната система се превръща в използване на запаметени команди, а неизбежните грешки водят до необясними последствия. От друга страна, в тази книга много по-малко внимание се обръща на проблемите на администрирането на UNIX, конфигурирането на конкретни подсистеми и използваните команди. Целта на тази книга е да очертае основната организация на операционната система UNIX. Трябва да се има предвид, че името UNIX обозначава значително семейство от операционни системи, всяка от които има собствено име и характеристики, уникални за нея. Тази книга се опитва да подчертае това, което е общо за "генотипа" на UNIX, а именно: основните потребителски и програмни интерфейси, предназначението на основните компоненти, тяхната архитектура и взаимодействие, и въз основа на това да представи системата като цяло. Въпреки това, където е уместно, се правят препратки към конкретна версия на UNIX. За илюстриране на някои точки бяха използвани следните операционни системи: Solaris 2.5 от Sun Microsystems, SCO ODT 5.0 от Santa Cruz Operation, BSDi/386 от Berkeley Software Design.

Раждането на тази книга беше предшествано от повече от три години опит в изнасянето на лекции за системата UNIX на студенти от трета година в Института по прецизна механика и оптика в Санкт Петербург (Технически университет), както и въвеждащ курс за потребители на UNIX и администратори в различни организации. По-голямата част от материала от тези курсове е отразен в книгата.

Книгата може да бъде полезна при изготвянето на редица лекционни програми за операционната система UNIX и основите на операционните системи като цяло. Материалът в Глава 1 осигурява добра основа за въвеждащ UNIX курс. Той въвежда основните понятия и организацията на операционната система като цяло. Тази глава също така предоставя основна информация за потребителския интерфейс и езика за програмиране на командния интерпретатор на обвивката.

Материалът в глава 2 може да се използва в курсове по програмиране. Подробно обсъждане на основните системни извиквания и библиотечните функции дава сравнително пълно разбиране на програмния интерфейс на тази операционна система. Дадените примери илюстрират разглежданите въпроси и могат да намерят отражение в лабораторната практика.

Книгата може да се използва и като учебно помагало за студенти от завършен курс на специалностите „Информатика и компютърни науки“, „Приложна математика и компютърни науки“ (за подготовка на бакалаври) и за специалност „Компютри, системни комплекси и мрежи“ (за обучението на инженери). Книгата е и добър помощник за системни програмисти и UNIX администратори. Надявам се, че по-внимателното вглеждане във вътрешната организация на системата ще им помогне да решат проблемите си по-ефективно и ще отвори нови хоризонти за експерименти.

И накрая, книгата може да представлява интерес за широк кръг потребители, които искат да научат повече за тази операционна система.

За кого е предназначена тази книга?

Няма смисъл да разбирате операционната система, без да работите с нея. На първо място, за администратора са необходими познания за операционната система, нейната организация и структура, т.е. лицето, отговорно за неговата поддръжка и конфигурация. Задачите на администратора са многобройни - от регистрация на потребител до мрежова конфигурация, от създаване на резервни копия на системата до настройка на производителността. Без разбиране на фундаменталната структура на операционната система решаването на всички тези проблеми се превръща в запомняне на команди и елементи от менюто, а извънредните ситуации предизвикват паника.

Познаването на операционната система е необходимо за разработчика на софтуер. Производителността на вашата програма зависи от това колко ефективно се използват ресурсите на операционната система. Без разбиране на принципите на работа е лесно да се объркате в тънкостите на системните повиквания и библиотечните функции. Ако работите с ядрото на системата - например разработвате драйвер за устройство - без познаване на системата няма да напреднете нито една стъпка.

И накрая, ако сте просто потребител, тогава познаването на операционната система е ограничено до онези задачи, които трябва да решите, докато работите. Най-вероятно това са няколко команди и ако работите с графична обвивка, тогава няма да имате нужда и от това. Но наистина ли работата с черна кутия е толкова приятна?

Приети означения

Системните извиквания, библиотечните функции и командите на обвивката са показани в курсив, като open(2), cat(1) или printf(3S). Разделът на електронния указател man(1) е посочен в скоби (описание на указателя е дадено в Приложение А).

Структурите на данни, променливите и вътрешните функции на подсистемите на ядрото, програмните изходни кодове и примерите за команден ред са отпечатани с шрифт с фиксирана ширина. Например d_open(), sleep() или примерна програма:

В примерите за команден ред въвеждането от потребителя се показва с удебелен шрифт с фиксирана ширина, например:

$ passwd

Въведете старата парола:

Имената на файловете са например с удебелен шрифт /etc/passwdили .

Клавишите на клавиатурата са показани в курсив и затворени в ъглови скоби, например< Del >или< Ctrl >+< C >(в последния случай се показва клавишната комбинация).

Текуща страница: 1 (книгата има общо 12 страници) [наличен пасаж за четене: 8 страници]

А. Ю. Кручинин
операционна система

1Първи стъпки с операционни системи

1.1 Предназначение и функции на операционните системи

Компютърната операционна система е набор от взаимосвързани програми, които действат като интерфейс между приложенията и потребителите, от една страна, и компютърния хардуер, от друга. Операционната система изпълнява две групи функции:

Предоставя на потребителя или програмиста разширена виртуална машина вместо реален компютърен хардуер;

Повишава ефективността на използването на компютъра чрез рационално управление на неговите ресурси в съответствие с някакъв критерий.

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

В същото време операционната система действа като мениджър на ресурси. Според този подход работата на операционната система е да осигури организирано и контролирано разпределение на процесори, памет и I/O устройства между различни програми. Операционната система има следните характеристики:

Функциите на операционната система работят по същия начин като другия софтуер – реализирани са под формата на отделни програми или набор от програми, изпълняващи процеси;

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

Управлението на ресурсите включва решаване на следните общи задачи, които не зависят от вида на ресурса:

Планиране на ресурсите – т.е. определяне на кой процес, кога и в какво количество (ако ресурсът може да бъде разпределен на части) трябва да бъде разпределен даден ресурс;

Задоволяване на заявки за ресурси;

Следене на статуса и записване на използването на даден ресурс – тоест поддържане на оперативна информация дали ресурсът е зает или свободен и какъв дял от ресурса вече е разпределен;

Разрешаване на конфликти между процесите.

Управлението на ресурсите включва тяхното мултиплексиране (разпределение) по два начина: във времето и в пространството. Когато даден ресурс се разпределя с течение на времето, различни потребители и програми се редуват да го използват. Първо една от тях получава достъп за използване на ресурса, след това друга и т.н. Например няколко програми искат достъп до централния процесор. В тази ситуация операционната система първо позволява достъп до процесора на една програма, след това, след като е работила достатъчно време, на друга програма, след това на следващата и накрая отново на първата. Определянето колко време ще се използва даден ресурс във времето, кой ще бъде следващият и за колко време ще му бъде предоставен ресурсът е задача на операционната система. Друг вид разпределение е пространственото мултиплексиране. Вместо да работи алтернативно, всеки клиент получава част от ресурса. Обикновено RAM се споделя между няколко работещи програми, така че всички те да могат да се намират в паметта едновременно (например, като използват централния процесор на свой ред). Ако приемем, че имате достатъчно памет за съхранение на множество програми, по-ефективно е да поставите няколко програми в паметта наведнъж, отколкото да разпределите цялата памет за една програма, особено ако тя се нуждае само от малка част от наличната памет. Разбира се, това повдига въпроси за справедливо разпределение, защита на паметта и т.н., а операционната система съществува, за да разрешава такива проблеми.

1.2 История на развитието на операционните системи

Обикновено историята на развитието на операционните системи се свързва с историята на развитието на компютрите. Първата идея за компютър е предложена от английския математик Чарлз Бабидж в средата на деветнадесети век. Той разработва така наречената механична „аналитична машина“, която обаче така и не заработи правилно. Следват поколения компютри и връзката им с операционните системи.

Първо поколение 1945-1955г

Компютрите се състоят от вакуумни тръби и съединителни панели. Най-високото постижение е производството на перфокарти. Изработена от тънък картон, перфорираната карта представлява информация чрез наличието или отсъствието на дупки на определени позиции на картата. Няма операционна система.

Второ поколение 1955-1965г

Основата на компютрите са транзистори и системи за пакетна обработка. Характеризира се с тестета перфокарти и устройства за запис на магнитни ленти. Основно програмиран на Fortran и асемблерни езици за Fortran Monitor System (FMS) и операционните системи IBSYS.

Трето поколение 1965-1980г

Периодът се характеризира с появата на интегрални схеми, както и многозадачност или, както се нарича по друг начин, мултипрограмиране. IBM произвежда различни серии машини, като се започне с IBM/360. За тях е написана операционната система OS/360, която е приблизително 1000 пъти по-голяма от второто поколение FMS. На този етап се появява индустриална реализация на многозадачност - метод за организиране на изчислителен процес, при който няколко програми се съхраняват едновременно в паметта на компютъра и се изпълняват последователно на един процесор.

Други забележителни операционни системи от този период са CTSS (Съвместима система за споделяне на времето) и MULTICS (Мултиплексна информационна и компютърна услуга), която е проектирана да осигури достъп до една машина за стотици потребители наведнъж. По-нататъшното развитие на тази система прерасна в UNIX.

Четвърто поколение 1980-настояще

Този период е свързан с появата на мащабни интегрални схеми. През 1974 г. Intel пусна първия универсален 8-битов процесор, Intel 8080. В началото на 80-те IBM разработи IBM PC, персонален компютър. По същото време се появи и първата версия на MS-DOS. Всички разработени до този момент операционни системи поддържаха само текстов режим на комуникация с потребителя.

Първият опит за създаване на удобен за потребителя графичен интерфейс беше реализиран на Apple Macintosh. Повлияна от своите успехи, Microsoft Corporation пуска графична обвивка за MS-DOS - Windows. И от 1995 г. беше пуснат Windows 95, който стана самостоятелна система. Впоследствие на базата на Windows 95 и друга система Windows NT са разработени съществуващите в момента операционни системи - Windows 2000, XP, Vista и др.

1.3 Класификация на операционните системи

Има много операционни системи и не всеки ги познава. След това разглеждаме 7 вида различни операционни системи от големи до малки нива.

Мейнфрейм операционни системи

Мейнфреймът е високопроизводителен компютър с общо предназначение със значително количество RAM и външна памет, предназначен да извършва интензивна изчислителна работа. Това обикновено са компютри с размер на стая и се намират в големи корпорации. Мейнфреймите обикновено съдържат хиляди дискове и терабайти RAM.

Мейнфрейм операционните системи са проектирани основно да обработват множество едновременни задачи, повечето от които изискват огромно количество I/O. Системата трябва да отговаря на хиляди заявки в секунда. Пример за това е OS/390, която еволюира от 3-то поколение операционна система OS/360.

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

Тези операционни системи работят на сървъри, които са персонален компютър, работна станция или дори мейнфрейм. Сървърите предоставят възможност за работа с печатащи устройства, файлове или интернет. Такива операционни системи включват Unix, Linux, Windows 2003 Server и др.

Многопроцесорни операционни системи

Тези системи се използват на компютри с множество централни процесори. Те изискват специални операционни системи, но обикновено са модификации на сървърни операционни системи.

Операционни системи за персонални компютри

Основният критерий на тези системи е удобен интерфейс за един потребител. Най-известните системи: Windows 98, 2000, XP, серия Vista; Macintosh, Linux.

Операционни системи в реално време

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

Вградени операционни системи

Те включват PDA (Personal Digital Assistant) операционни системи. Освен това вградените системи работят с автомобили, телевизори и мобилни телефони. Тези операционни системи обикновено имат всички характеристики на операционни системи в реално време с ограничения на паметта, мощността и т.н. Примери за системи са PalmOS, Windows CE.

Операционни системи за смарт карти

Смарт картата е устройство с размер на кредитна карта, съдържащо централен процесор. Такива системи са обект на сериозни ограничения на мощността и паметта. Някои управляват само една операция - електронно плащане, например. Избрани смарт карти включват поддръжка за Java Virtual Machine.

1.4 Преглед на компютърния хардуер

Операционната система е тясно свързана с хардуера на компютъра, на който трябва да работи. Хардуерът влияе върху набора от команди на операционната система и управлението на нейните ресурси. Концептуално един прост компютър може да бъде представен от модела, показан на фигура 1. Тази структура се използва при първите модели на IBM PC.


Фигура 1 - Някои компоненти на персонален компютър


На фигурата централния процесор, паметта и входно/изходните устройства са свързани чрез системна шина, чрез която обменят информация.

процесор

„Мозъкът“ на компютъра е централния процесор (CPU). Той избира команди от паметта и ги изпълнява. Типичният процесорен цикъл изглежда така: чете първата инструкция от паметта, декодира я, за да определи нейния тип и операнди, изпълнява инструкцията, след което чете и декодира следващите инструкции. Ето как се изпълняват програмите.

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

Когато процесорът е мултиплексиран във времето, операционната система спира работеща програма, за да стартира друга. Всеки път, когато възникне такова прекъсване, операционната система трябва да запази всички регистри на процесора, така че по-късно, когато прекъснатата програма продължи да работи, те могат да бъдат възстановени.

За да увеличат скоростта на процесора, техните разработчици изоставиха простия модел, когато само една команда може да бъде прочетена, декодирана и изпълнена в един такт. Съвременните процесори имат способността да изпълняват няколко команди едновременно.

Повечето процесори имат два режима на работа: режим на ядрото и потребителски режим. Ако процесорът работи в режим на ядрото, той може да изпълни всички инструкции в набора от инструкции и да използва всички възможности на хардуера. Операционната система работи в режим на ядро, осигурявайки достъп до целия хардуер. За разлика от това, потребителите работят в потребителски режим, който позволява изпълнението на подмножество от програми и прави наличен само част от хардуера.

памет

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

Системата за памет е изградена под формата на йерархия от слоеве, които са илюстрирани на фигура 2. Докато се движите през йерархията отгоре надолу, два параметъра се увеличават: време за достъп, размер на паметта.

Най-горният слой се състои от вътрешните регистри на процесора, така че няма забавяне при достъп до тях. Вътрешните регистри съхраняват по-малко от 1Kb информация. Програмите могат да манипулират регистри без хардуерна намеса. Достъпът до регистрите е най-бърз - няколко наносекунди.

Следващият слой съдържа кеш памет, управлявана предимно от хардуер. Най-често използваните кеш области се съхраняват във високоскоростна кеш памет, разположена вътре в процесора. Когато една програма трябва да прочете дума от паметта, кеш чипът определя дали желаният ред е в кеша; ако е така, тогава се осъществява достъп до кеша. Кеш паметта е ограничена по размер поради високата си цена. Съвременните машини имат две или три нива на кеш памет, всяко от които е по-бавно и по-голямо от предишното. Размерите на кеш паметта варират от десетки килобайта до няколко мегабайта. Времето за достъп е малко по-дълго, отколкото при регистрите.


Фигура 2 – Йерархична структура на паметта


Следва RAM (RAM - Random Access Memory или памет с произволен достъп) - основната работна зона на устройството за съхранение на машината. Всички заявки на процесора, които не могат да бъдат изпълнени от кеш паметта, се изпращат към RAM за обработка. Обемите варират от стотици мегабайта до няколко гигабайта. Времето за достъп е десетки наносекунди.

Следва магнитният диск. Дисковата памет е два порядъка по-евтина от RAM на бит и два порядъка по-голяма по размер. Дискът има един проблем - произволният достъп до данните на него отнема около три порядъка повече време. Причината за ниската скорост на твърдите дискове (HDD) е, че устройството е механична структура. Състои се от една или повече метални плочи, въртящи се с определени скорости, като например 7200 rpm. Дисковите обеми сега растат бързо; дискове със стотици гигабайти се продават за повечето потребители. Време за достъп – не по-малко от 10 µs.

Магнитната лента често се използва за създаване на резервни копия на HDD или за съхраняване на много големи набори от данни. Сега, разбира се, рядко можете да намерите използването на магнитни ленти, но все пак те все още не са излезли от употреба. Нивото на магнитната лента включва също CD, DVD и флаш памет. Времето за достъп се измерва в секунди.

В допълнение към описаните типове, компютрите имат малко количество постоянна памет с произволен достъп. За разлика от RAM, тя не губи съдържанието си при изключване на захранването. Нарича се ROM или ROM. ROM е програмиран по време на производството и съдържанието му не може да се променя след това. Тази памет е доста бърза и евтина. Програмите за зареждане на компютъра, използвани при стартиране, се намират в ROM. В допълнение, някои I/O карти съдържат ROM за управление на устройства от ниско ниво. Тип памет, наречен CMOS, е летлив. CMOS се използва за съхраняване на текущата дата, час и конфигурационни параметри, като например от кой твърд диск да се стартира. Тази памет черпи енергия от инсталираната батерия.

I/O устройства

Операционната система третира I/O устройствата като ресурси. I/O устройствата обикновено се състоят от контролер и самото устройство.

Контролерът е набор от чипове на платка, поставена в конектор, физическо устройство за управление. Той приема команди на операционната система (например инструкции за четене на данни от устройство) и ги изпълнява. Действителното управление на устройството е много сложно и изисква високо ниво на детайлност. Следователно функцията на контролера е да осигури прост интерфейс на операционната система.

Следващата част е самото устройство. Устройствата имат доста прости интерфейси, тъй като техните възможности са ограничени и трябва да бъдат приведени към един стандарт. Необходим е единен стандарт, например, така че всеки IDE дисков контролер (Integrated Drive Electronics) да може да управлява всеки IDE диск. Интерфейсът IDE е стандартен за устройства на компютри с процесор Pentium, както и на други компютри. Тъй като действителният интерфейс на устройството е скрит от контролера, операционната система вижда само интерфейса на контролера, който може да е много различен от интерфейса на самото устройство.

Тъй като всеки тип контролер е различен, те изискват различен софтуер. Програмата, която комуникира с контролера, е драйверът на устройството. Всеки производител на контролер трябва да предостави драйвери за поддържаните операционни системи. За да използвате драйвера, той трябва да бъде инсталиран в операционната система, така че да може да работи в режим на ядрото. Има три начина за инсталиране на драйвер в ядрото:

Преизградете ядрото заедно с нов драйвер и след това рестартирайте операционната система (това работят много Unix операционни системи);

Създайте запис във файла, включен в операционната система, указващ, че е необходим драйвер и след това рестартирайте системата; по време на първоначалното зареждане операционната система сама намира необходимите драйвери и ги зарежда (така работи Windows);

Операционната система може да приема нови драйвери, без да прекъсва работата, и бързо да ги инсталира, без да изисква рестартиране. Този метод става все по-разпространен. Устройства като USB шини, IEEE 1394 винаги изискват динамично заредени драйвери.

Въвеждането и извеждането на данни може да се извърши по три различни начина.

Най-простият начин: потребителската програма издава системна заявка, която ядрото преобразува в извикване на процедура, съответстваща на драйвера, след което драйверът започва I/O процеса. През това време той извършва кратък програмен цикъл, като непрекъснато анкетира устройството, с което работи. Когато I/O завърши, драйверът поставя данните там, където са необходими, и се връща в първоначалното си състояние. След това операционната система връща контрола на програмата, която е направила повикването. Този метод е в очакване на готовност (активно изчакване). Има един недостатък: процесорът трябва да анкетира устройството, докато не се изключи.

Драйверът стартира устройството и го моли да издаде прекъсвания, когато I/O приключи; След това драйверът връща управлението на операционната система и тя започва да изпълнява други задачи. Когато контролерът открие края на трансфера на данни, той генерира прекъсване за завършване. I/O процесът, използващ прекъсвания, се състои от четири стъпки (Фигура 3). На първата стъпка драйверът предава команда на контролера, записвайки информация в регистрите на устройството. След това контролерът стартира устройството. Когато контролерът приключи с четенето или записването на броя байтове, които му е казано да прехвърли, той изпраща сигнал до чипа на контролера за прекъсване, използвайки специфични проводници на шина. Това е втора стъпка. В третата стъпка, ако контролерът на прекъсванията е готов да обработва прекъсвания, тогава той изпраща сигнал до определен пин на процесора, като по този начин го информира. В четвъртата стъпка контролерът за прекъсване вмъква номер на устройство в шината, така че процесорът да знае кое устройство е завършило работата си.

Третият метод за въвеждане/извеждане на информация е използването на специален DMA (Direct Memory Access) контролер. DMA управлява потока от битове между RAM и някои контролери без намеса на процесора. Процесорът получава достъп до DMA чипа, казва му броя байтове за прехвърляне, както и адреса на устройството и паметта и посоката на прехвърляне на данни. След завършване на работата, DMA инициира прекъсване, което се обработва по обичайния начин.


Фигура 3 - Действия, извършвани, когато I/O устройство стартира и получи прекъсване


Гуми

Поради увеличаването на скоростта на процесора и паметта, към системата бяха добавени допълнителни шини както за ускоряване на комуникацията на I/O устройствата, така и за прехвърляне на данни между процесора и паметта. Фигура 4 показва диаграма на изчислителната система на първите Pentium.

Тази система има 8 шини (кеш шина, локална шина, шина на паметта, PCI, SCSI, USB, IDE, ISA), всяка със собствена скорост на трансфер на данни и свои собствени функции. Операционната система трябва да има информация за всички тези шини, за да управлява компютъра.

Централният процесор предава данни чрез локалната шина към PCI мостовия чип, който от своя страна осъществява достъп до паметта чрез специална шина. Системата Pentium I има кеш от ниво 1 (L1), вграден в процесора, и много по-голям кеш от ниво 2 (L2), свързан към процесора на отделна кеш шина. Шината IDE се използва за свързване на периферни устройства към системата (CD-ROM, твърд диск).


Фигура 4 – Структура на системата Pentium


USB (Universal Serial Bus) шината е предназначена за свързване на допълнителни входно/изходни устройства като клавиатура, мишка, принтер, флаш памет и др. към компютър. С времето се появяват и добавят нови, по-бързи гуми.




2024 г
seagun.ru - Направете таван. Осветление. Електрически инсталации. Корниз