Sunteți pe pagina 1din 25

Sisteme de operare

Principiile sistemului de operare

29 April 2014

Material pus la dipozitie de catre Microsoft prin Programul Academic

29 April 2014

Plan
Vedere general a arhitecturii SO
Mediul de Execuie a Programelor Arhitectura Modului Kernel Fire de lucru Procese i servicii

Material pus la dipozitie de catre Microsoft prin Programul Academic

29 April 2014

Arhitectura simplificata a SO
System support processes User Mode

Service processes

User Environment applications subsystems

Subsystem DLLs

Kernel Mode
Kernel

Executive Device drivers


Hardware Abstraction Layer (HAL)

Windowing and graphics

Material pus la dipozitie de catre Microsoft prin Programul Academic

29 April 2014

Arhitecura SO
Proiectarea SO cu personalitate multipl

Aplicaiile utilizator nu apeleaz direct serviciile sistemului de operare nativ Windows Subsistemul DLL traduce funciile catalogate n apeluri corespunztoare de servicii interne ale sistemului (necatalogate). Mediul de dezvoltare a proceselor Managementul proceselor client n viziunea utilizatorului Impunerea semanticii pentru modele de proces, securitate etc. Subsisteme native: Windows, POSIX i OS/2 Doar Windows 2000 include Windows i POSIX (Portable Operating System Interface for uniX) Doar Windows XP include Windows

Subsisteme noi POSIX disponibile ca servicii pentru Unix Incluse n Windows Server R2 prin Material pus la dipozitie2003 de catre Microsoft
Programul Academic

29 April 2014

Componentele Kernel-Mode : Nucleul OS


Executabil servicii de baz ale sistemului de operare managementul memoriei, proceselor i firelor de lucru securitate, I/O, comunicarea interprocese. Kernel Funcii low-level ale sistemului de operare, Planificarea, ntreruperea i excepii la iniierea firelor de lucru, Sincronizarea proceselor. Furnizeaz un set de rutine i obiecte elementare care sunt utilizate pentru realizarea structurilor la nivel superior. Ambele sunt coninute de Ntoskrnl.exe
Material pus la dipozitie de catre Microsoft prin Programul Academic 5

29 April 2014

Componentele KernelMode : Drivere


Drivere (*.sys) Driverele tranform apelurile utlizatorului ctre dispozitivele de I/O n cereri specifice ctre aceste dispozitive Drivere virtuale - volumele sistemului i protocoale de reea Windowing and Graphics Driver (Win32k.sys) Funciile interfaei grafic cu utilizatorul (GUI) (USER and GDI) Ferestre, controlere pentru interfaa cu utilizatorul Hardware Abstraction Layer (Hal.dll) Izoleaz kernelul, driverele i executabilul de hardware Ascunde diferenele existente ntre diferite sisteme (plci de baz)
Material pus la dipozitie de catre Microsoft prin Programul Academic 6

29 April 2014

Bazele proceselor
Procese de baz ale sistemului,

Procesul de identificare, managementul sesiunilor, etc. Nu sunt iniiate de service control manager Servicii Host Windows services ex. Seviciile Task Scheduler i Spooler Multe aplicaii de tip server, ca Microsoft SQL Server i Microsoft Exchange Server, includ componente care ruleaz ca i servicii.
Material pus la dipozitie de catre Microsoft prin Programul Academic 7

Procese de servicii

29 April 2014

Portabilitate
La lansarea Windows NT, nu exista o arhitectur dominant de

procesor A fost proiectat cu funcia de portabiliate Realizare Codul i driveriele majoritii SO Windows au fost scrise n C

HAL i kernel conin un limbaj de asamblare

Unele componente sunt scrise n C++:


Driverul subsistemului grafic Managerul pentru volume

Codul specific pentru hardware la nivel inferior al SO este izolat n nivelele low level (Kernel i HAL)

Furnizeaz o intefa portabil

NT 4.0 avea suport pentru x86, MIPS, PowerPC, Digital Alpha AXP

PowerPC i MIPS au aprut curnd dup lansarea NT 4 Alpha AXP a fost lansat n 1999 (suportat prin SP6)

Material pus la dipozitie de catre Microsoft prin Programul Academic

29 April 2014

Operaii simultane i asincrone


Kernelul Windows permite operaii simultane

Funciile Kernelului pot fi invocate de mai multe fire de lucru simultan Nu se aplic secvenialitate atunci cnd firele de lucru lansate de utilizator apeleaz SO
Asincronitatea I/O optimizeaz schimbul de informaii Funciile de eliminare a sincronismului sunt necesare pentru o programare facil
Material pus la dipozitie de catre Microsoft prin Programul Academic 9

Sistemele I/O pot lucra asincron


29 April 2014

Fiiere sistem Windows


Componente de baz:

NTOSKRNL.EXE** HAL.DLL NTDLL.DLL


SMSS.EXE WINLOGON.EXE SERVICES.EXE LASS.EXE

Executabil i kernel Hardware abstraction layer Livrarea serviciilor ctre funciile executabile
Proces de management al sesiunilor de lucru Identificare Controler servicii Local Security Authority Subsystem

Procese de baz:

Subsisteme:

CSRSS.EXE* WIN32K.SYS KERNEL32/USER32/GDI32.DLL

Procesele subsistem coponentele USER i GDI n kernel-mode DLL susbsistemelor SO

Material pus la dipozitie de catre Microsoft prin Programul Academic

10

29 April 2014

Componente de baz
Environment Subsystems
System & Service Processes User Application Subsystem DLL OS/2

Windows

POSIX Windows

User Mode
Kernel Mode Device Drivers

Executive
Kernel Hardware Abstraction Layer (HAL)

Windows User/GDI Device Driver

Material pus la dipozitie de catre Microsoft prin Programul Academic

11

29 April 2014

Opiuni multiple ale SO

Windows a fost proiectat pentru a suporta diferite funcii denumite generic subsisteme Interfaa de programare Sintaxa fiierului sistem Semantica proceselor Mediul subsistemelor ofer o interfa ntre aplicaii i API (application programming interface) nativ al Windows Fiecare subsistem definete propriile API i sematici Subsistemele le implementeaz prin invocarea API-urilor native

Ex: Windows CreateFile n Kernel32.Dll apeleaz API-ul native NtCreateFile

.exe i .dlls scrise de utilizator sunt asociate unui subsistem Specificate n opiunea LINK /SUBSYSTEM Nu se pot mixa apeluri ntre subsisteme

Material pus la dipozitie de catre Microsoft prin Programul Academic

12

29 April 2014

Subsisteme
n NT au fost prevzute trei subsisteme:

Windows Windows API ( 32-bit, i actual 64-bit) OS/2 - 1.x numai pentru aplicaii n mod unicaracter

nlocuit n Windows 2000

Posix - doar Posix 1003.1 (Servicii minimale Unix fr interfa grafic, reea, fire de lucru etc.)

nclocuit n XP/Server 2003 cu Services For Unix 3.0

Prin aceste subsisteme native Windows ofer acces ctre majoritatea

funciilor native Sunt necesare la


Blocarea sistemului la nchiderea subsistemelor Subsistemele POSIX i OS/2 sunt aplicaii curente ale POSIX & OS/2 pornesc la cerere (la rularea aplicaiei)

Pstrarea funcionrii pn la nchiderea SO

Material pus la dipozitie de catre Microsoft prin Programul Academic

13

29 April 2014

Subsistemul de apelare a aplicaiilor


Funcia este implementat n user mode

Nu apeleaz procesele mediului de subsisteme Nu necesit servicii executabile Ex: PtInRect(), IsRectEmpty() Funcia apeleaz o dat sau de mai multe ori executabilul Windows Ex: Windows ReadFile() / WriteFile() implementat folosind seviciul I/O NtReadFile() / NtWriteFile() Funcia necesit prelucrri n procesul mediulu de subsisteme (menin starea de client a aplicaiei) Cererile client/server ctre mediul de subsisteme (facilitatea LPC) Subsistemul DLL ateapt un rspuns de la destinatar Combinaii ntre 2/3: CreateProcess() / CreateThread()

Material pus la dipozitie de catre Microsoft prin Programul Academic 14

29 April 2014

Subsistemele Windows
Procesul mediului de subsistem (CSRSS.EXE): Consol (text) Creaz i terge procese i fire de lucru Face parte din 16-bit virtual DOS machine (VDM) Alte funcii: GetTempFile, DefineDosDevice, ExitWindowsEx kernel-mode device driver (WIN32K.SYS): Managementul ferestrelor: imagini monitor; Intrri de la tastatur, mouse i alte dispozitive Mesajele utilizatorului ctre aplicaii. Graphical Device Interface (GDI)
Material pus la dipozitie de catre Microsoft prin Programul Academic 15

29 April 2014

Subsistemele Windows
Subsistemul DLL (ex. USER32.DLL, ADVAPI32.DLL,

GDI32.DLL, and KERNEL32.DLL)

Transform funciile API Windows API n apleuri ctre NTOSKRNL.EXE i WIN32K.SYS.

Drivere pentru interfaa grafic Drivere monitor, placa video, imprimanta

Anterior NT 4.0, window manager i serviciile grafice fceau parte din procesele subsistemului user-mode Win32.

Material pus la dipozitie de catre Microsoft prin Programul Academic

16

29 April 2014

Procese i fire de lucru

Spaiu de adresare per-process

Proces

Thread

Reprezint o instan a unui program n derulare


La rualrea unui program se deschide un proces

Este definit de:


Spaiul de adresare Resurse Profil de securitate

Thread

Fir de lucru

Execuia unui context din cadrul execuiei unui proces Unitate de planificare (firele de lucru sunt n derulare, procesele nu) Toate firele de lucru mpart acelai spaiu de adresare perproces

Thread

Serviciile sunt concepute pentru a asigura sincronizarea accesului firelor de lucru ale proceselor la resurse (seciuni critice, evenimente, semafoare)

Firele de lucru ale unui sistem sunt planificate independent de apartena la proces Parametrul primar la crearea procesului este numele fiierului imagine (sau linia de comnd) (or command line) Pentru firul de lucru este adresa punctului de intrare a funciei
Material pus la dipozitie de catre Microsoft prin Programul Academic

Apeluri ale sistemului

Spaiu de adresare sistem


17

29 April 2014

Modelul de protejare a memoriei


Separarea spaiului de adresare pentru fiecare proces

Tabele separate pentru fiecare proces Tabela curent este schimbat n contextul derulrii unui nou fir de lucru al unui alt proces Procesele nu pot utiliza memoria kernel-ului Paginile SO pot fi accesate doar n kernel mode

x86: Ring 0, Itanium: Privilege Level 0

Firele de lucru schimb modul ntre user i kernel pentru a executa codul kernel

Nu afecteaz planificarea firelor de lucru

Material pus la dipozitie de catre Microsoft prin Programul Academic

18

29 April 2014

Spaiul de adresare 32-bit x86


32-bits = 4 GB

Iniial

Spaiu utilizator 3 GB

Spaiu procese utilizator 2 GB

Spaiu procese utilizator 3 GB

2 GB Spaiu sistem
1 GB Spaiu sistem
Material pus la dipozitie de catre Microsoft prin Programul Academic 19

Kernel-Mode i User-Mode
QuickSlice (qslice.exe)

29 April 2014

Cale rapid de

detectare a ncrcrii procesorului Rou=Kernel, Albastru=User mode Double-click pe un proces pentru a vedea firele de lucru asociate

Material pus la dipozitie de catre Microsoft prin Screen snapshot Programul Academic

from: Resource Kit | QuckSlice

20

29 April 2014

Task Manager: Procese i Aplicaii

Meniul de procese

Meniul de aplicaii

Right-click i selecteaz Go to Material pus la dipozitie de catre Microsoft prin process Programul Academic

Running nseamn ateptarea unui mesaj de la interfa


21

29 April 2014

Arhitectura Windows
System Processes Service Control Mgr. LSASS WinLogon User Mode SvcHost.Exe WinMgt.Exe Windows Task Manager Explorer User Application POSIX Subsystem DLLs Windows DLLs OS/2 Services Applications Environment Subsystems

SpoolSv.Exe
Services.Exe

Session Manager

System Threads Kernel Mode

NTDLL.DLL

System Service Dispatcher (kernel mode callable interfaces) I/O Mgr Configuration Mgr (registry) Processes & Threads Windows USER, GDI

Local Procedure Call

Security Reference Monitor

Plug and Play Mgr.

Virtual Memory

File System Cache

Object Mgr.

Power Mgr.

Device & File Sys. Drivers

Graphics Drivers

Kernel Hardware Abstraction Layer (HAL) Material pus la dipozitie de catre Microsoft prin hardware interfaces (buses, I/O devices, interrupts, Programul Academic interval timers, DMA, memory cache control, etc., etc.)
Original copyright by Microsoft Corporation. Used by permission.

22

29 April 2014

Multiprocesare simetric (SMP)


CPUs

Nu exist un procesor master


Toate procesoarele partajeaz aceeai memorie Sunt intrerupte de ctre orice procesor Orice procesor poate reprograma n ateptare celelalte procesoare

L2 Cache Memory

Majoritatea instrunciunilor CPU sunt

I/O

stocate n regitrii

HKLM\System\CurrentControlSet \Control\Session Manager \LicensedProcessors

SMP

Implementrile curente limiteaz numarul

de procesoare n funcie de lungimea cuvntului


32 pentru sisteme 32-bit 64 pentru sisteme 64-bit Material pus la dipozitie de catre Microsoft prin
Programul Academic

23

29 April 2014

Hyperthreading
Technologie implementat de procesoarele Xeon & Pentium

Un procesor apare ca avnd dou nuclee n interpretarea SO Numit i simultaneous multithreading technology (SMT) Chipul menine dou stri logice ale procesorului (procesoare logice) Motorul de execuie i cache-ul este partajat ntre nuclee Funcioneaz cu Windows 2000, dar XP & Server 2003 sunt optimizate pentru hyperthreading In calculul limitei de procesoare se omit procesoarele logice Algoritmii de planificare iau n calcul n schimb procesoarele logice Aplicaiile sunt optimizate prin apatiia unor noi funcii (Windows Server 2003)

Material pus la dipozitie de catre Microsoft prin Programul Academic 24

29 April 2014

NUMA
Sistemul NUMA (non uniform memory architecture) Grupeaz procesoarele fizice (numite noduri) i au memorie proprie

Conectate la o zon mai mare de memorie cache printr-o magistral de interconectarea Este tot un sistem SMP (ex. Orice procesor poate accesa toat memoria) Dar memoria local a nodului este mai rapid Algoritmii de planificare iau n considerare ncearc s planifice fire provenind de la acelai nod Aloc cu proiritate memoria local firelor de lucru din procesele care aparin aceluiai nod

Material pus la dipozitie de catre Microsoft prin Programul Academic 25

S-ar putea să vă placă și