slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Лекция 2 Операционни системи общ преглед Процеси – описание и коРPowerPoint Presentation
Download Presentation
Лекция 2 Операционни системи общ преглед Процеси – описание и коÐ

Loading in 2 Seconds...

play fullscreen
1 / 127

Лекция 2 Операционни системи общ преглед Процеси – описание и коР- PowerPoint PPT Presentation


  • 125 Views
  • Uploaded on

Лекция 2 Операционни системи общ преглед Процеси – описание и контрол. Нишки, SMP и Микроядра. Основни теми. Операционни системи - функционалност Развитие на модерните операционни системи Microsoft Windows UNIX Systems Linux. Операционни системи функции.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Лекция 2 Операционни системи общ преглед Процеси – описание и коÐ' - will


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

Лекция 2Операционни системиобщ прегледПроцеси– описание и контрол

Нишки, SMP и Микроядра

slide2
Основни теми
  • Операционни системи - функционалност
  • Развитие на модерните операционни системи
  • Microsoft Windows
  • UNIX Systems
  • Linux
slide3
Операционни системи функции
  • Програма, която контролира изпълнението на програми
  • Връзка между приложения и хардуер
  • Основни цели на ОС :
    • Удобство
    • Ефективност
    • Способност да се развива
slide5
Услуги поддържани от ОС
  • Разработване на програми
    • Редактори и дебъгери.
  • Изпълнение на програмите
    • ОС поддържа график на множество задачи, необходими за изпълнение на програмите и достъп до вх/изх устройства
    • Всяко устройство има уникален интерфейс
    • ОС представя стандартен интерфейс за потребителите
slide6
Контролиращи услуги
  • Контрол до достъпа до файлова
    • Достъп до различни медии, но запазват общ интерфейс за потребители
    • Осигурява защита при множествен достъп
  • Системен достъп
    • Контролират се системните ресурси и достъпа до тях
slide7

Откриване на грешки и алармиране

    • Вътрешми и външни хардуерни грешки
    • Софтуерни грешки
  • Управление на потребители
    • Статистика (логове)
    • Мониторинг на производителността
slide8
Роля на ОС

Компютърът е набор от средства за преместването, съхраняването и обработката на данни .

ОС е отговорна за управлението на тези ресурси .

slide9
ОС като софтуер
  • Функциите на ОС наподобяват обикновения софтуер
    • Програми ,които се изпълняват от CPU
  • ОС конролират процесора
slide10
Еволюция на ОС
  • ОС се и ще се развиват във времето
    • Хардуерно обновяване , както и развитието на нов тип хардуер.
    • Нови услуги
slide11
Основни теми
  • Операционна система Цели / Функции
  • Еволюцията на операционни системи
  • Основни постижения
  • Предпоставки довели до модерните ОС
  • Microsoft Windows - преглед
  • UNIX Systems
  • Linux
slide12
Развитие на ОС
  • Очаквания и изисквания към системите и развитието им.
  • Етапи
    • Серийна обработка
    • Опростени системи (партидни)
    • Мултипрограмни системи (партидни)
    • Системи с времеделене
slide13
Опростени системи
  • Ранни компютри са изключително скъпи
  • Важно е да се увеличи използването процесор (производителността му)
  • Мониторинг (наблюдение)
    • Софтуер контролиращ последователност от събития
    • Програма връщаща контрол при преустановяване на действие
slide14
Методи на операциите
  • User Mode – потребителски режим
    • Потребителски програми
    • Някои области на паметта, защитени от достъп на потребителя
    • Режим на ядрото
    • Контрол на изпълнението
    • Привилегировани инструкции
slide15
Мултипрограмни системи
  • CPU е често свободен
    • Дори и с автоматична контрол на последователността на операциите.
    • I/O устройства са бавни в сравнение с процесор
slide16
Еднопрограмни

Изчакване :

slide17
Мултипрограмност

Когато една задача трябва да чака за

I/O, процесорът може да превключикъмдруга задача

slide19
Системи за времеделене

Използва се за управлението на множество задачи

Процесорното време е поделено м/у потребителите

Множество потребители имат възможност за едновременен достъп до ресурсите

early example ctss
Early Example: CTSS
  • Съвместими системи с времеделене (CTSS)
  • Време за разпределяне:
    • Когато контрола е преминал към потребителя
    • Потребителски програми и зареждане на данни
    • Прекъсвания генерирани на 0.2 сек.
    • На всяко прекъсване контрола може да се предаде на друг поребител
slide23
Проблеми

Повече процеси в паметта трябва да бъдат защитени

Файловата система трябва да бъда защитена от потребители с неправомерен достъп

slide24
Виртуална памет

Логическо адресиране на паметта

Без оглед на ограниченията нафизическата памет

paging
Paging

Виртуален адрес е номера на страницата и преместване в рамките на страницата

slide27
Защита на информацията и сигурност
  • Проблемът включва контролиране на достъпа до компютърните системи и информацията, съхранявана в тях .
  • Основни посоки:
    • НАличност
    • Секретност
    • Цялостност на данните
    • Автентичност
slide29
Различни архитектурни подходи
  • Включват:
    • Архитектура с микроядра
    • Multithreading
    • Разпределени ОС
    • Обектно ориентиран дизайн
slide30
Микроядра
  • Голяма част от ранните ОС са с монолитни ядра
    • Основната функционалност на ОС се определя от ядрото.
  • Микроядра
    • Адресно пространство
    • Комуникация м/у процесите (IPC)
    • Основи на планирането
multithreading
Multithreading
  • Процесите се изпълняват в различни разклонения - нишки
  • Нишки

Изпълняват се последователно и без прекъсвания

slide32
Разпределени ОС
  • Създават илюзия
    • За единно пространство на основната памет
    • За единно пространство на вторичната памет
roadmap
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
История – 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
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
client server model
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 Objects
  • Windows draws heavily on the concepts of object-oriented design.
  • Key Object Oriented concepts used by Windows are:
    • Encapsulation
    • Object class and instance
slide40
Основни теми
  • Operating System Objectives/Functions
  • The Evolution of Operating Systems
  • Major Achievements
  • Developments Leading to Modern Operating Systems
  • Microsoft Windows Overview
  • UNIX Systems
  • Linux
slide41
История - 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

slide45
Основни теми
  • Operating System Objectives/Functions
  • The Evolution of Operating Systems
  • Major Achievements
  • Developments Leading to Modern Operating Systems
  • Microsoft Windows Overview
  • UNIX Systems
  • Linux
slide46
История
  • 1991 – Linux – Linus Torvals – Unix based

Intel 80386

Linux 2.6

modular monolithic kernel
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
slide51
ПРОЦЕСИ
  • Фундамент в структурата на ОС
  • Процеса е:
    • Програма в режим на изпълнение
    • Инстанция на изпълнима програма
    • Поредна нишка на изпълнение, текущо състояние, както и свързаните с тях набор на системните ресурси .
slide52
Компоненти на процеса
  • Процесът съдържа :
    • Изпълнима програма
    • Асоцирани данни към изпълнимата програма
    • Изпълним контекст в програмата
  • Изпълнимия контекст съдържа цялата информация необходима за управление на процесите от ОС
two state process model
Two-State Process Model
  • Process may be in one of two states
    • Running
    • Not-running
queuing diagram
Queuing Diagram

Etc … processes moved by the dispatcher of the OS to the CPU then back to the queue until the task is competed

process attributes
Process Attributes
  • We can group the process control block information into three general categories:
    • Process identification
    • Processor state information
    • Process control information
process identification
Process Identification

Each process is assigned a unique numeric identifier.

Many of the other tables controlled by the OS may use process identifiers to cross-reference process tables

processor state information
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
Process ControlInformation
  • 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
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
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
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
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
Change of Process State cont…

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

slide71
Процес ли е ОС?
  • Ако ОС е сбор от програми и ако те се изпълняват от процесора – това означава ли че ОС е процес?
  • Ако е така – как се контролира?
    • Кой и как контролира това?

(въпрос за размисъл )

non process kernel
Non-process Kernel

Процес изпълняван извън ядрото

Концепциите на процеса се счита, че се прилагат само за потребителски програми

Кода на ОС се изпълнява в отделен привилегирован режим

slide75
Съдържание
  • Нишки: Споделяне на ресурси и изпълнение
  • Симетрична мултиобработка (SMP).
  • Микроядро
  • Употреба на нишки и SMP:
    • Windows
    • Solaris
    • Linux
slide76
Процеси и Нишки
  • Процесите имат две характеристики:
    • Собствени ресурси – всеки процес включва собствено адресно пространство за съхранение на данните му
    • Планиране/изпълнение – процесът има път на изпълнение, който може да бъде съгласуван с други процеси.
  • Тези две характеристики се третират независимо от операционната система.
slide77
Процеси и Нишки
  • Единицата за изпълнение се отнася като нишка (thread) или лек процес.
  • Единицата за собственост на ресурсите се отнася като процес или задача (task)
slide78
Многонишковост
  • Способността на ОС да поддържа множество конкурентни пътища на изпълнение в рамките на един процес.
slide79
Еднонишков подход
  • MS-DOS поддържа един потребителски процес и една нишка.
  • UNIX поддържа множество потребителски процеси, но само една нишка в процес.
slide80
Многонишковост
  • Java run-time environment (JRE) е един процес с много нишки
  • Множество процеси и нишки има в Windows, Solaris и много съвременни версии на UNIX
slide81
Процеси
  • Виртуално адресно пространство, което съдържа данните на процеса
  • Защитен достъп до:
    • Процесори
    • Други процеси
    • Файлове
    • Входни и изходни данни (I/O resources)
slide82
Една или няколко нишки в процес
  • Всяка нишка има
    • Състояние на изпълнение (изпълнява се (running), готова (ready) и т.н.)
    • Съхранен контекст на нишката, когато тя не се изпълнява
    • Стек на изпълнение
    • Заделена статична памет за локални променливи
    • Достъп до паметта и ресурсите на процеса (нишките в един процес си ги споделят)
slide84
Предимства на нишките
  • По-малко време е нужно за създаването на нова нишка, отколкото на нов процес
  • По-малко време е необходимо за прекратяване на нишки отколкото на процес
  • Превключването между две нишки отнема по-малко време отколко превключването между два процеса
  • Нишките могат да комуникират една с друга без да извикват ядрото
slide85
Употреба на нишки в едно-потребителска ОС
  • Foreground и background обработка
  • Асинхронна обработка
  • Скорост на изпълнение
  • Модулна програмна структура
slide86
Нишки
  • Има няколко дейности, които влияят върху всички нишки в един процес
    • ОC трябва да управлява тези дейности на ниво процес
  • Примери:
    • Временното прекратяването на процес включва прекратяването на всички нишки в него.
    • Приключването на процес терминира всички нишки в процеса
slide87
Дейности както при процесите
  • Нишките имат състояния по време на изпълнение и могат да се синхронизират
    • Подобно на процесите.
  • Фокусираме се върху тези два аспекта на функционалността на нишките.
    • Състояния (states)
    • Синхронизация
slide88
Състояния на нишките
  • Състояния, асоциирани с промяна на състоянието на нишката:
    • Block
      • Блокирането може да доведе до блокирането на други или всички нишки
    • Unblock
    • Finish
      • Премахване на контекста в регистрите и стековете
slide89
Пример: Извикване на отдалечени процедури
  • Задание:
    • Програма, която изпълнява извиквания към две отдалечени процедури (RPCs)
    • до два различни сървъра (hosts).
    • да представя комбиниран резултат.
slide94
Категории на реализация на нишки
  • User Level Thread (ULT)
  • Kernel level Thread (KLT) още наречени:
    • kernel-supported threads – поддържани от ядрото
    • lightweight processes – леки процеси.
user level threads
User-Level Threads
  • Управлението на нишката се прави от приложението.
  • Ядрото не знае за съществуването на тези нишки
slide96
Връзки между ULT нишките и състоянията на процеса
kernel level threads
Kernel-Level Threads
  • Ядрото поддържа информация за контекста на процеса и нишките
    • Приложението не управлява нишките
  • Планирането се прави на основни принципи при нишките
  • Windows е пример за този подход.
slide98
Предимства на KLT
  • Ядрото може едновременно да разпредели множество нишки от един процес на различни процесори.
  • Ако една нишка в един процес е блокирана, ядрото може да разпредели за изпълнение друга нишка на един и същ процес.
  • Рализацията на ядрото може да бъде само многонишкова.
slide99
Недостатъци на KLT
  • Прехвърлянето на контрола от една нишка към друга в рамките на един и същ процес изисква превключвател за режима на ядрото
slide100
Комбинирани подходи
  • Създаването на нишката е в потребителското пространство
  • Голяма част от планирането на изпълнението и синхронизирането на нишката се прави от приложението
  • Пример: Solaris
slide102
Традиционен поглед
  • Обикновено на компютъра се гледа като на последователна машина.
  • - Процесорът изпълнява инструкции една по
  • една в последователен ред.
  • - Всяка инструкция е последователност от
  • операции
  • Два известни подхода за осигуряване на паралелизъм
    • Symmetric MultiProcessors (SMPs)
    • Clusters (ch 16)
slide103
Категории компютърни системи
  • Single Instruction Single Data (SISD) stream
    • Един процесор изпълнява един поток от инструкции за да обработи данни, съхранени в единична памет.
  • Single Instruction Multiple Data (SIMD) stream
    • Всяка инструкция е изпълнена върху различна част от данните на различни процесори
slide104
Категории компютърни системи
    • Multiple Instruction Single Data (MISD) stream (Never implemented)
    • Последователност от данните се подава на множество от процесори, всеки от които изпълнява различна последователност от инструкции
  • Multiple Instruction Multiple Data (MIMD)
    • Набор от процесори едновременно изпълнява различни последователности от инструкции върху различни данни.
symmetric multiprocessing
Симетрична мултиобработка (Symmetric Multiprocessing)
  • Ядрото може да се изпълнява на всеки процесор, което позволява части от него да се изпълняват паралелно.
  • Обикновено всеки процесор си планира изпълнението на наличните процеси или нишки.
slide108
Фактори при проектирането на мултипроцесорна ОС
  • Ключови фактори при проектиране:
    • Еновременни и конкуриращи се процеси и нишки
    • Планиране на изпълнението на процесите и нишките
    • Синхронизация
    • Управление на паметта
    • Надеждност и устойчивост на откази
microkernel
Microkernel (Микроядро)
  • Микроядрото е малко ядро на ОС, което осигурява основата за модулни разширения.
  • Големият въпрос е колко малко трябва да бъде ядрото, за да се квалифицира като микроядро
    • Трябва ли драйверите да са в потребителското пространство?
  • На теория, този подход осигурява висока степен на гъвкавост и модулни разширения.
microkernel1
Проектиране на Microkernel: Управление на паметта
  • Управление на паметта на ниско ниво – Обвързване на всяка виртуална страница към физическа.
    • Повечето задачи за управление на паметта се появяват в потребителското пространство
microkernel2
Проектиране на Microkernel: Комуникация между процесите
  • Комуникацията между процеси или нишки в ОС с микроядро се осяществява чрез съобщения (messages)
  • Съобщението включва:
    • Заглавна част (header), който идентифицира изпращащият и получаващият процес
    • Тяло (body), което съдържа данни, указател към част от данните, или контролна информация за процеса.
microkernal
Проектиране на Microkernal:Вход/изход и управление на прекъсванията
  • В рамките на микроядрото е възможно да се обработят хардуерни прекъсвания като съобщения и да се добавят портовете за вход/изход в адресните пространства.
    • На определен процес от потребителското ниво се възлага реагирането на прекъсването и ядрото поддържа обработката.
slide114
Предимства на ОС с микроядро
  • Унифицирани интерфейси относно запитвания, отправени от един процес.
  • Разширяемост
  • Гъвкавост
  • Преносимост
  • Надеждност
  • Поддръжка на разпределени среди
  • Обектно ориентирани ОС
slide115
Различни подходи към процесите
  • Разликите при различните ОС относно поддръжката на процеси включват:
    • Именуване на процеси
    • Осигуряване на нишките
    • Представяне на процесите
    • Защитаване на ресурсите
    • Механизми за комуникация между процесите и синхронизация
    • Връзки между процесите
windows
Процеси в Windows ОС
  • Процесите и услугите (services), които са осигурени от ядрото на Windows, са сравнително прости и с общо предназначение
    • Реализирани са като обекти
    • Изпълним процес може да съдържа една или повече нишки
    • Процесите и нишките са обекти и имат вградени възможности за синхронизация.
smp windows
Поддръжка на SMP в Windows
  • Нишките могат да се изпълнят на всеки от процесорите
    • Но приложението може да ограничи този ефект
  • Soft Affinity
    • Разпределителят (dispatcher)опитва да присвои готова нишка на съшият процесор от последното изпълнение.
    • Това подпомага преизползването на данни, които са кеширани в паметта на процесора от последното изпълнение на нишката.
  • Hard Affinity
    • Приложението изисква изпълнението на нишките да бъде на определен процесор.
solaris
Solaris
  • Solaris реализира поддръжка на нишките на няколко нива, за да осигури гъвкавост при използването на ресурсите на процесора.
  • Процесите включват потребителското адресно пространство, стека и process control block
solaris1
Процеси в Solaris
  • Solaris използва четири различни концепции за нишките:
    • Процес: включват потребителското адресно пространство, стека и process control block.
    • Нишка на потребителско ниво: Единица за изпълнение в рамките на процес, която е създадена от потребителя.
    • Леки процеси: връзка между ULTs и нишките на ядрото (kernel threads).
    • Нишки на ядрото
linux
Linux Задачи
  • Процес или задача в Linux се представят чрез task_struct структурата от данни.
  • Тя съдържа няколко категории:
    • Състояние (State)
    • Информация за разпределението (Scheduling information)
    • Идентификатори (Identifiers)
    • Комуникация между процесите (Interprocess communication)
    • други