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

от Уикипедия, свободната енциклопедия
Направо към: навигация, търсене

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

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

История и основни принципи[редактиране | edit source]

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

Първите операционни системи са били само с команден ред. Такива са ДОС, UNIX. През 50-те и 60-те години водеща роля в разработката на ОС играе IBM, която е лидер на пазара за мейнфрейм компютри. През този период се сформират и реализират основните идеи, определящи функционалностите на ОС: пакетен режим, разделение по време и многозадачност, разделение по пълномощия, реален временен мащаб, работа с файлови структури и файлови системи.

Пакетен режим[редактиране | edit source]

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

Разделение по време и многозадачност[редактиране | edit source]

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

Необходимостта от разделението по време (многозадачност, мултипрограмиране) се проявява още по-силно, когато през 60-те години в качеството на входно-изходни устройства се въвеждат електромеханични клавиатури (а по-късно терминали с електронно-лъчева тръба). Тъй като скоростта на въвеждането на данни от оператора през клавиатурата (и даже на четенето от екрана) е много по-ниска от скоростта на обработка на същите данни от процесора, използването на компютъра в «монополен» режим (с един оператор) щяло да доведе до излишен разход на скъпи изчислителни ресурси.

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

Историята на многопотребителските и многозадачните ОС започва в края на 1960 г. Кен Томпсън се включва в изследователския екип на Bell Laboratories, които са развойното подразделение на американската корпорация АТТ. Той и неговите колеги в сътрудничество с MIT и GE работят по проект за създаване на многопотребителска/многозадачна ОС под работното наименование MULTICS. За съжаление, крайният продукт се оказва твърде бавен и прекалено голям, поради което Bell Lab's оставя екипа без необходимите средства. След като се появява PDP-7 компютърът, Томпсън пренаписва програмата за симулиране на планетарното движение, преди това реализирана върху GE. В същото време, той експериментира с много от концепциите, залегнали в MULTICS. Написва голям брой поддържащи програми, както и програмата за централно управление на ресурсите — ядрото (англ. kernel). Идеята за йерархичното разпределение на файловете за пръв път е реализирана от него. Готовата система нарича UNIX, защото е еднопотребителска — като антипод на MULTICS.

Операционната система на Томпсън намира разпространение сред колегите му от научния департамент на Bell lab's, защото прави разработката на софтуер по-лесна от всякога. Постепенно са добавени нови приложения, което позволило на групата да си осигури PDP-11 — по-нова и мощна система. 16-битовата PDP-11 става де факто втората хардуерна платформа за UNIX реализацията. Благодарение на хардуерното управление на паметта са добавени многопотребителски приложения. С това UNIX става първата многопотребителска операционна система в света.

Първите операционни системи и на „Майкрософт“ и на „Епъл“, появили се през 80-те, са еднопотребителски. Първоначално ОС са били 8-битови и трудни за употреба. Впоследствие се появяват и 16-битови операционни системи. И двете компании разбират, че трябва да премахнат това ограничение и разработват нови технологии в Windows 95 и новите версии на Mac OS. За съжаление в операционната система на „Майкрософт“ по-скоро е реализиран псевдо-многопотребителски режим, т.е. всички потребители споделят едни и същи ресурси. Въпреки че Windows 95 е рекламирана като 32-битова многопотребителска многозадачна операционна система, самият факт, че се базира на DOS, която е 16-битова, предопределя факта, че Windows 95 всъщност представлява хибридна 16-битова/32-битова система.

Първата операционна система, в която е реализирана многозадачност, е UNIX. Други такива операционни системи са GNU/LINUX, Windows NT и след това, Mac OS, OS/2. Това са и реално първите 32-битови ОС.

Различават се две форми на многозадачност:

  • „разпределена“
  • „кооперативна“

Разпределената многозадачност се контролира от ОС, която дава определено време на процеса (програмата) да приключи със задачата си. Ако програмата не успее да приключи за това време, ОС форсира програмата да предаде управлението на процесора и го дава на следващата програма, която се нуждае от него.

Кооперативната многозадачност се реализира, когато на приложението, стартирано от ОС, се дават пълни привилегии да използва 100% от процесора. В този случай, ако друга програма изиска процесорно време, то няма да ѝ бъде предоставено. Това от своя страна ще доведе до нарушаване на функциите на това приложение и/или до терминирането му. (забележка: което на практика означава, че не е многозадачна!?!)

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

Разделение по пълномощия[редактиране | edit source]

Разпространението на многопотребителските системи на свой ред поставя задачата за разделение по пълномощия, с чието решаване се избягва възможността за изменение на изпълняваната програма или данни за нея, намиращи се в паметта, от друга програма (нарочно или случайно), а също така и от изменение на самата ОС от някоя приложна програма.

Реализирането на принципа на разделяне по пълномощия среща подкрепа от страна на разработчиците на процесори и те предлагат архитектури с два режима на работа на процесора — «реален» (в който изпълняваната програма има достъп до цялото адресно пространство) и «защитен» (в който достъпът до адресното пространство е ограничен в диапазона, заделен при пускането на програмата за изпълнение).

Реален временен мащаб[редактиране | edit source]

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

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

Файлови системи и структури[редактиране | edit source]

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

Различните ОС имат различен начин на работа с файловите системи.

Структура на операционната система[редактиране | edit source]

Една операционна система се състои от две основни части:

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

Видове операционни системи[редактиране | edit source]

В днешно време съществуват много разновидности на ОС, които са тясно специализирани. Такива например са мрежовите ОС като Unix, Solaris, NetWare и др. или операционните системи за суперкомпютрите, които обикновено са собствени разработки или са доработени съществуващи ОС, като Solaris, HP-UX. За разлика от тях Windows, Mac OS, OpenSolaris, GNU/Linux, BSD (NetBSD, OpenBSD, FreeBSD, PC-BSD, PicoBSD) могат да изпълняват широк кръг от задачи. Те се наричат още потребителски операционни системи.

ОС с графичен интерфейс[редактиране | edit source]

Ключов момент в историята на ОС е, когато IBM назначават „Майкрософт“ да създадат своя ДОС, която те да използват в новите си персонални компютри. „Майкрософт“ купуват системата QDOS от фирма за софтуер в Сиатъл и я преработват, наричайки я MS-DOS. По-късно основателят на „Епъл“ Стив Джобс започва да работи върху графичен интерфейс. Той взема от компанията „Xerox Corporation“ тяхната разработка на графичен потребителски интерфейс, която тогава от „Ксерокс“ смятат за безперспективна и започва да я внедрява в първите 16-битови компютри на „Епъл“. Първата операционна система с графичен интерфейс е инсталирана на компютрите Lisa на „Епъл“, а първият компютър с мишка е Macintosh, отново на „Епъл“. Тази система първоначално се нарича просто System, но впоследствие е решено да се нарича Macintosh Operating System (за по-кратко MacOS) по името на компютрите, в които се използва. По това време компанията на Бил Гейтс успява да внедри подобен ГПИ (Графичен Потребителски Интерфейс) в MS-DOS и се появява Windows, който първоначално представлява система от програми, създаващи ГПИ в ДОС. Оттогава започва развитието на операционните системи в други насоки.

Бъдещето на операционните системи[редактиране | edit source]

До скоро най-разпространените ОС бяха 32-битови, като с навлизането на новите 64-битови процесори започнаха да се разработват и съответните 64-битови ОС.

Вижте също[редактиране | edit source]

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