Documente Academic
Documente Profesional
Documente Cultură
29 April 2014
29 April 2014
Plan
Vedere general a arhitecturii SO
Mediul de Execuie a Programelor Arhitectura Modului Kernel Fire de lucru Procese i servicii
29 April 2014
Arhitectura simplificata a SO
System support processes User Mode
Service processes
Subsystem DLLs
Kernel Mode
Kernel
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
29 April 2014
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
Codul specific pentru hardware la nivel inferior al SO este izolat n nivelele low level (Kernel i HAL)
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)
29 April 2014
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
29 April 2014
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:
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)
11
29 April 2014
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
.exe i .dlls scrise de utilizator sunt asociate unui subsistem Specificate n opiunea LINK /SUBSYSTEM Nu se pot mixa apeluri ntre subsisteme
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
Posix - doar Posix 1003.1 (Servicii minimale Unix fr interfa grafic, reea, fire de lucru etc.)
Blocarea sistemului la nchiderea subsistemelor Subsistemele POSIX i OS/2 sunt aplicaii curente ale POSIX & OS/2 pornesc la cerere (la rularea aplicaiei)
13
29 April 2014
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()
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,
Anterior NT 4.0, window manager i serviciile grafice fceau parte din procesele subsistemului user-mode Win32.
16
29 April 2014
Proces
Thread
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
29 April 2014
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
Firele de lucru schimb modul ntre user i kernel pentru a executa codul kernel
18
29 April 2014
Iniial
Spaiu 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
20
29 April 2014
Meniul de procese
Meniul de aplicaii
Right-click i selecteaz Go to Material pus la dipozitie de catre Microsoft prin process Programul Academic
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
NTDLL.DLL
System Service Dispatcher (kernel mode callable interfaces) I/O Mgr Configuration Mgr (registry) Processes & Threads Windows USER, GDI
Virtual Memory
Object Mgr.
Power Mgr.
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
Toate procesoarele partajeaz aceeai memorie Sunt intrerupte de ctre orice procesor Orice procesor poate reprograma n ateptare celelalte procesoare
L2 Cache Memory
I/O
stocate n regitrii
SMP
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)
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