ОС. Процеси. Нишки. SMP и Микроядра

Download Report

Transcript ОС. Процеси. Нишки. SMP и Микроядра

Лекция 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:
Модел Процес/Нишка