Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Лекция 2 Операционни системи общ преглед Процеси – описание и контрол Нишки, SMP и Микроядра Основни теми Операционни системи функционалност Развитие на модерните операционни системи Microsoft Windows UNIX Systems Linux Операционни системи функции Програма, която контролира изпълнението на програми Връзка между приложения и хардуер Основни цели на ОС : Удобство Ефективност Способност да се развива Основни слоеве Услуги поддържани от ОС Разработване на програми Редактори и дебъгери. Изпълнение на програмите ОС поддържа график на множество задачи, необходими за изпълнение на програмите и достъп до вх/изх устройства Всяко устройство има уникален интерфейс ОС представя стандартен интерфейс за потребителите Контролиращи услуги Контрол до достъпа до файлова Достъп до различни медии, но запазват общ интерфейс за потребители Осигурява защита при множествен достъп Системен достъп Контролират се системните ресурси и достъпа до тях Откриване на грешки и алармиране Вътрешми и външни хардуерни грешки Софтуерни грешки Управление на потребители Статистика (логове) Мониторинг на производителността Роля на ОС Компютърът е набор от средства за преместването, съхраняването и обработката на данни . ОС е отговорна за управлението на тези ресурси . ОС като софтуер Функциите на ОС наподобяват обикновения софтуер Програми ,които се изпълняват от CPU ОС конролират процесора Еволюция на ОС ОС се и ще се развиват във времето Хардуерно обновяване , както и развитието на нов тип хардуер. Нови услуги Основни теми Операционна система Цели / Функции Еволюцията на операционни системи Основни постижения Предпоставки довели до модерните ОС Microsoft Windows - преглед UNIX Systems Linux Развитие на ОС Очаквания и изисквания към системите и развитието им. Етапи Серийна обработка Опростени системи (партидни) Мултипрограмни системи (партидни) Системи с времеделене Опростени системи Ранни компютри са изключително скъпи Важно е да се увеличи използването процесор (производителността му) Мониторинг (наблюдение) Софтуер контролиращ последователност от събития Програма връщаща контрол при преустановяване на действие Методи на операциите User Mode – потребителски режим Потребителски програми Някои области на паметта, защитени от достъп на потребителя Режим на ядрото Контрол на изпълнението Привилегировани инструкции Мултипрограмни системи CPU е често свободен Дори и с автоматична контрол на последователността на операциите. I/O устройства са бавни в сравнение с процесор Еднопрограмни Изчакване : Мултипрограмност Когато една задача трябва да чака за I/O, процесорът може да превключи към друга задача Multiprogramming Системи за времеделене Използва се за управлението на множество задачи Процесорното време е поделено м/у потребителите Множество потребители имат възможност за едновременен достъп до ресурсите Batch Multiprogramming Time Sharing Early Example: CTSS Съвместими системи с времеделене (CTSS) Време за разпределяне: Когато контрола е преминал към потребителя Потребителски програми и зареждане на данни Прекъсвания генерирани на 0.2 сек. На всяко прекъсване контрола може да се предаде на друг поребител CTSS Операции Проблеми Повече процеси в паметта трябва да бъдат защитени Файловата система трябва да бъда защитена от потребители с неправомерен достъп Виртуална памет Логическо адресиране на паметта Без оглед на ограниченията на физическата памет Paging Виртуален адрес е номера на страницата и преместване в рамките на страницата Virtual Memory Addressing Защита на информацията и сигурност Проблемът включва контролиране на достъпа до компютърните системи и информацията, съхранявана в тях . Основни посоки: НАличност Секретност Цялостност на данните Автентичност Key Elements of an Operating System Различни архитектурни подходи Включват: Архитектура с микроядра Multithreading Разпределени ОС Обектно ориентиран дизайн Микроядра Голяма част от ранните ОС са с монолитни ядра Основната функционалност на ОС се определя от ядрото. Микроядра Адресно пространство Комуникация м/у процесите (IPC) Основи на планирането Multithreading Процесите се изпълняват в различни разклонения - нишки Нишки Изпълняват се последователно и без прекъсвания Разпределени ОС Създават илюзия За единно пространство на основната памет За единно пространство на вторичната памет Обектно ориентиран дизайн Roadmap Operating System Objectives/Functions The Evolution of Operating Systems Major Achievements Developments Leading to Modern Operating Systems Microsoft Windows Overview UNIX Systems Linux История – MS OS 1981 – DOS 1.0 – Intel 8086 1983 – DOS 2.0 1984 – DOS 3.0 – Intel 80286 1980 – MS start GUI development 1990 – First GUI - Windows 3.0 1993 - Window NT 3.1 Windows 95,98, 2000 Windows Server 2003 – 64-bit Windows XP, Vista, Server 2008, Windows 7 Single-User Multitasking From Windows 2000 on Windows development developed to exploit modern 32-bit and 64-bit microprocessors Designed for single users who run multiple programs Main drivers are: Increased memory and speed of microprocessors Support for virtual memory Windows Architecture Client/Server Model Windows OS, protected subsystem, and applications all use a client/server model Common in distributed systems, but can be used internal to a single system Processes communicate via RPC Windows Objects Windows draws heavily on the concepts of object-oriented design. Key Object Oriented concepts used by Windows are: Encapsulation Object class and instance Основни теми Operating System Objectives/Functions The Evolution of Operating Systems Major Achievements Developments Leading to Modern Operating Systems Microsoft Windows Overview UNIX Linux Systems История - UNIX 1970 – at Bell Labs (C) 1976 – Version 6 1978 – Version 7 1982 – UNIX System III (Berkeley Software Distribution) BSD FreeBSD – Internet Based servers FreeBSD 5.0– MAC OS X Solaris 10 Description of UNIX Traditional UNIX Kernel System V Release 4 (SVR4) Основни теми Operating System Objectives/Functions The Evolution of Operating Systems Major Achievements Developments Leading to Modern Operating Systems Microsoft Windows Overview UNIX Systems Linux История 1991 – Linux – Linus Torvals – Unix based Intel 80386 Linux 2.6 Modular Monolithic Kernel Although monolithic, the kernel is structures as a collection of modules Loadable modules An object file which can be linked and unlinked at run time Characteristics: Dynamic Linking Stackable modules Linux Kernel Modules Linux Kernel Components Процеси ПРОЦЕСИ Фундамент в структурата на ОС Процеса е: Програма в режим на изпълнение Инстанция на изпълнима програма Поредна нишка на изпълнение, текущо състояние, както и свързаните с тях набор на системните ресурси . Компоненти на процеса Процесът съдържа : Изпълнима програма Асоцирани данни към изпълнимата програма Изпълним контекст в програмата Изпълнимия контекст съдържа цялата информация необходима за управление на процесите от ОС Two-State Process Model Process may be in one of two states Running Not-running Queuing Diagram Etc … processes moved by the dispatcher of the OS to the CPU then back to the queue until the task is competed Five-State Process Model Using Two Queues Multiple Blocked Queues One Suspend State Two Suspend States Processes and Resources OS Control Tables Process Attributes We can group the process control block information into three general categories: Process identification Processor state information Process control information Process Identification Each process is assigned a unique numeric identifier. Many of the other tables controlled by the OS may use process identifiers to crossreference process tables Processor State Information This consists of the contents of processor registers. User-visible registers Control and status registers Stack pointers Program status word (PSW) contains status information Example: the EFLAGS register on Pentium processors Process Control Information This is the additional information needed by the OS to control and coordinate the various active processes. See table 3.5 for scope of information Role of the Process Control Block The most important data structure in an OS It defines the state of the OS Process Control Block requires protection A faulty routine could cause damage to the block destroying the OS’s ability to manage the process Any design change to the block could affect many modules of the OS Modes of Execution Most processors support at least two modes of execution User mode Less-privileged mode User programs typically execute in this mode System mode More-privileged mode Kernel of the operating system Process Creation Once the OS decides to create a new process it: Assigns a unique process identifier Allocates space for the process Initializes process control block Sets up appropriate linkages Creates or expand other data structures Switching Processes Several design issues are raised regarding process switching What events trigger a process switch? We must distinguish between mode switching and process switching. What must the OS do to the various data structures under its control to achieve a process switch? Change of Process State cont… 4. 5. 6. 7. Select another process for execution Update the process control block of the process selected Update memory-management data structures Restore context of the selected process Процес ли е ОС? Ако ОС е сбор от програми и ако те се изпълняват от процесора – това означава ли че ОС е процес? Ако е така – как се контролира? Кой и как контролира това? (въпрос за размисъл ) Изпълнение на операционната система Non-process Kernel Процес изпълняван извън ядрото Концепциите на процеса се счита, че се прилагат само за потребителски програми Кода на ОС се изпълнява в отделен привилегирован режим Нишки, SMP и Микроядра Съдържание • • • • Нишки: Споделяне на ресурси и изпълнение Симетрична мултиобработка (SMP). Микроядро Употреба на нишки и SMP: – – – Windows Solaris Linux Процеси и Нишки • Процесите имат две характеристики: – – • Собствени ресурси – всеки процес включва собствено адресно пространство за съхранение на данните му Планиране/изпълнение – процесът има път на изпълнение, който може да бъде съгласуван с други процеси. Тези две характеристики се третират независимо от операционната система. Процеси и Нишки • • Единицата за изпълнение се отнася като нишка (thread) или лек процес. Единицата за собственост на ресурсите се отнася като процес или задача (task) Многонишковост • Способността на ОС да поддържа множество конкурентни пътища на изпълнение в рамките на един процес. Еднонишков подход • • MS-DOS поддържа един потребителски процес и една нишка. UNIX поддържа множество потребителски процеси, но само една нишка в процес. Многонишковост • • Java run-time environment (JRE) е един процес с много нишки Множество процеси и нишки има в Windows, Solaris и много съвременни версии на UNIX Процеси • • Виртуално адресно пространство, което съдържа данните на процеса Защитен достъп до: – – – – Процесори Други процеси Файлове Входни и изходни данни (I/O resources) Една или няколко нишки в процес • Всяка нишка има – – – – – Състояние на изпълнение (изпълнява се (running), готова (ready) и т.н.) Съхранен контекст на нишката, когато тя не се изпълнява Стек на изпълнение Заделена статична памет за локални променливи Достъп до паметта и ресурсите на процеса (нишките в един процес си ги споделят) Нишки / процеси Предимства на нишките • • • • По-малко време е нужно за създаването на нова нишка, отколкото на нов процес По-малко време е необходимо за прекратяване на нишки отколкото на процес Превключването между две нишки отнема по-малко време отколко превключването между два процеса Нишките могат да комуникират една с друга без да извикват ядрото Употреба на нишки в еднопотребителска ОС • • • • Foreground и background обработка Асинхронна обработка Скорост на изпълнение Модулна програмна структура Нишки • Има няколко дейности, които влияят върху всички нишки в един процес – ОC трябва да управлява тези дейности на ниво процес Примери: – – Временното прекратяването на процес включва прекратяването на всички нишки в него. Приключването на процес терминира всички нишки в процеса Дейности както при процесите • Нишките имат състояния по време на изпълнение и могат да се синхронизират – • Подобно на процесите. Фокусираме се върху тези два аспекта на функционалността на нишките. – – Състояния (states) Синхронизация Състояния на нишките • Състояния, асоциирани с промяна на състоянието на нишката: – Block • – – Блокирането може да доведе до блокирането на други или всички нишки Unblock Finish • Премахване на контекста в регистрите и стековете Пример: Извикване на отдалечени процедури • Задание: – – – Програма, която изпълнява извиквания към две отдалечени процедури (RPCs) до два различни сървъра (hosts). да представя комбиниран резултат. RPC, използващ една нишка RPC, използващ една нишка за сървър Многонишковост при един процесор Adobe PageMaker Категории на реализация на нишки • • User Level Thread (ULT) Kernel level Thread (KLT) още наречени: – – kernel-supported threads – поддържани от ядрото lightweight processes – леки процеси. User-Level Threads • • Управлението на нишката се прави от приложението. Ядрото не знае за съществуването на тези нишки Връзки между ULT нишките и състоянията на процеса Kernel-Level Threads • Ядрото поддържа информация за контекста на процеса и нишките – • • Приложението не управлява нишките Планирането се прави на основни принципи при нишките Windows е пример за този подход. Предимства на KLT • • • Ядрото може едновременно да разпредели множество нишки от един процес на различни процесори. Ако една нишка в един процес е блокирана, ядрото може да разпредели за изпълнение друга нишка на един и същ процес. Рализацията на ядрото може да бъде само многонишкова. Недостатъци на KLT • Прехвърлянето на контрола от една нишка към друга в рамките на един и същ процес изисква превключвател за режима на ядрото Комбинирани подходи • • • Създаването на нишката е в потребителското пространство Голяма част от планирането на изпълнението и синхронизирането на нишката се прави от приложението Пример: Solaris Връзка между нишки и процеси Традиционен поглед • Обикновено на компютъра се гледа като на последователна машина. - Процесорът изпълнява инструкции една по една в последователен ред. - Всяка инструкция е последователност от операции • Два известни подхода за осигуряване на паралелизъм – – Symmetric MultiProcessors (SMPs) Clusters (ch 16) Категории компютърни системи • • Single Instruction Single Data (SISD) stream – Един процесор изпълнява един поток от инструкции за да обработи данни, съхранени в единична памет. Single Instruction Multiple Data (SIMD) stream – Всяка инструкция е изпълнена върху различна част от данните на различни процесори Категории компютърни системи • – • – Multiple Instruction Single Data (MISD) stream (Never implemented) Последователност от данните се подава на множество от процесори, всеки от които изпълнява различна последователност от инструкции Multiple Instruction Multiple Data (MIMD) Набор от процесори едновременно изпълнява различни последователности от инструкции върху различни данни. Архитектура на паралелен процесор Симетрична мултиобработка (Symmetric Multiprocessing) • Ядрото може да се изпълнява на всеки процесор, което позволява части от него да се изпълняват паралелно. • Обикновено всеки процесор си планира изпълнението на наличните процеси или нишки. Стандартна SMP Организация Фактори при проектирането на мултипроцесорна ОС • Ключови фактори при проектиране: – – – – – Еновременни и конкуриращи се процеси и нишки Планиране на изпълнението на процесите и нишките Синхронизация Управление на паметта Надеждност и устойчивост на откази Microkernel (Микроядро) • • • Микроядрото е малко ядро на ОС, което осигурява основата за модулни разширения. Големият въпрос е колко малко трябва да бъде ядрото, за да се квалифицира като микроядро – Трябва ли драйверите да са в потребителското пространство? На теория, този подход осигурява висока степен на гъвкавост и модулни разширения. Архитектура на ядро (kernel) Проектиране на Microkernel: Управление на паметта • Управление на паметта на ниско ниво – Обвързване на всяка виртуална страница към физическа. – Повечето задачи за управление на паметта се появяват в потребителското пространство Проектиране на Microkernel: Комуникация между процесите • • Комуникацията между процеси или нишки в ОС с микроядро се осяществява чрез съобщения (messages) Съобщението включва: – – Заглавна част (header), който идентифицира изпращащият и получаващият процес Тяло (body), което съдържа данни, указател към част от данните, или контролна информация за процеса. Проектиране на Microkernal: Вход/изход и управление на прекъсванията • В рамките на микроядрото е възможно да се обработят хардуерни прекъсвания като съобщения и да се добавят портовете за вход/изход в адресните пространства. – На определен процес от потребителското ниво се възлага реагирането на прекъсването и ядрото поддържа обработката. Предимства на ОС с микроядро • • • • • • • Унифицирани интерфейси относно запитвания, отправени от един процес. Разширяемост Гъвкавост Преносимост Надеждност Поддръжка на разпределени среди Обектно ориентирани ОС Различни подходи към процесите • Разликите при различните ОС относно поддръжката на процеси включват: – – – – – – Именуване на процеси Осигуряване на нишките Представяне на процесите Защитаване на ресурсите Механизми за комуникация между процесите и синхронизация Връзки между процесите Процеси в Windows ОС • Процесите и услугите (services), които са осигурени от ядрото на Windows, са сравнително прости и с общо предназначение – – – Реализирани са като обекти Изпълним процес може да съдържа една или повече нишки Процесите и нишките са обекти и имат вградени възможности за синхронизация. Връзка между процеси и ресурси Процесът като обект в Windows Нишката като обект в Windows Състояния на нишката Поддръжка на SMP в Windows • Нишките могат да се изпълнят на всеки от процесорите – • Soft Affinity – – • Но приложението може да ограничи този ефект Разпределителят (dispatcher)опитва да присвои готова нишка на съшият процесор от последното изпълнение. Това подпомага преизползването на данни, които са кеширани в паметта на процесора от последното изпълнение на нишката. Hard Affinity – Приложението изисква изпълнението на нишките да бъде на определен процесор. Solaris • • Solaris реализира поддръжка на нишките на няколко нива, за да осигури гъвкавост при използването на ресурсите на процесора. Процесите включват потребителското адресно пространство, стека и process control block Процеси в Solaris • Solaris използва четири различни концепции за нишките: – – – – Процес: включват потребителското адресно пространство, стека и process control block. Нишка на потребителско ниво: Единица за изпълнение в рамките на процес, която е създадена от потребителя. Леки процеси: връзка между ULTs и нишките на ядрото (kernel threads). Нишки на ядрото Връзка между Процеси и Нишки Solaris състояния на нишките Linux Задачи • • Процес или задача в Linux се представят чрез task_struct структурата от данни. Тя съдържа няколко категории: – – – – – Състояние (State) Информация за разпределението (Scheduling information) Идентификатори (Identifiers) Комуникация между процесите (Interprocess communication) други Linux: Модел Процес/Нишка