Documente Academic
Documente Profesional
Documente Cultură
01-Introducere Odp
01-Introducere Odp
Introducere
Introducere
kernel space
kernel programming (PSO)
Administrative
Site: http://cs.pub.ro/~pso
Wiki
10 puncte teme de casă
Temele pot fi implementate pe Linux, pe Windows sau şi pe
Linux si pe Windows
Tema copiată -> punctaj 0 la toate temele
2 puncte activitate la laborator
nu se punctează doar prezenţa
3 puncte examen
9 întrebări, open book
Testează înţelegerea conceptelor
Obiectivele cursului
Programare: C
SDA: tabele de dispersie, arbori balansaţi
PLAS: lucrul cu regiştri şi instrucţiuni de bază
(adunări, comparaţii, salturi)
CN: TLB/CAM, cache
PC, RC: ethernet, IP, sockeţi
SO: procese, fişiere, thread-uri, memorie virtuală
Despre curs
12 cursuri
ultimul curs – simulare examen
interactiv
participaţi la discuţii
întrebaţi atunci când nu aţi înţeles
destul de “dens”
se recomandă călduros parcurgerea suportului
bibliografic înainte şi după curs
Despre curs (2)
nd
Linux Device Drivers, 3 edition, Alessandro
Rubini & Jonathan Corbet, O'Reilly 2006
Programming the Windows Driver Model, 2 nd
edition, Walter Oney, Microsoft Press, 2002
nd
The Windows 2000 Device Driver Book, 2
edition, Art Baker & Jerry Lozano, Prentice Hall,
2001
Linux Kernel in a Nutshell, Greg Kroah-Hartman,
O'Reilly 2005
Suport bibliografic
UTLK: capitolul 1
LKD: capitolul 1
WI: capitolele 1 şi 2
Arhitectura unui sistem de operare
Aplicaţii
Sistem de operare
Shell, utilitare de bază
Kernel
User vs Kernel
User-space
Contexte de execuţie
Context process
Cod ce rulează în user-space
Cod ce rulează în kernel-space în urma unui apel de
sistem efectuat de un anumite proces
Context întrerupere
Codul rulează ca urmare a apariţiei unei întreruperi
Întotdeauna rulează în kernel space
Monolitic vs microkernel
App App
User Mode
Client Memory Network
App Server Server
Kernel Mode
User Mode
Kernel Mode
request
Microkernel
reply
OS
procedures
Hardware
Hardware
Monolitic vs microkernel (2)
User User
applications applications
User
Mode libc
Kernel
Mode Kernel Device drivers
Architecture dependent code
Arch
Process management
Memory management
Block I/O
VFS – Virtual Filesystem Subsystem
Networking
Securitate: LSM, SeLinux
Process management
Domenii de execuţie
Scheduling
Procesele şi thread-urile sunt abstractizate în task-
uri
Task-urile conţin resurse
Thread-urile = task-uri ce partajează aceleaşi resurse
Managerul de memorie
Managerul de memorie (2)
I/O schedulers
Buffer cache
VFS
VFS (2)
Swapper
PID 0
Contorizează timpul nefolosit (idle)
Init
PID 1
În contextul acestui proces rulează kernel thread-urile
Primul proces rulat de kernel; rulează scripturile de iniţializare a
sistemului /etc/rc.d/, gestionează nivelele de rulare
Nu poate fi terminat
Înfiază procesele orfane
Arhitectura W2K
System
support Service User Environment
processes processes applications subsystems
User
Mode Subsystem DLLs
Kernel
Mode Executive Windowing
Kernel Device drivers and graphics
Hardware Abstraction Layer (HAL)
HAL
Managerul de configurare
Implementarea si gestiunea registry-ului
Managerul de thread-uri şi procese
Crearea si terminarea thread-urilor
Managerul de securitate
Mangerul operaţiilor de I/E
Transferă cererile de I/E către device driverele de tip bloc
Interactionează cu Cache Managerul
Componente ale executivului (2)
Power Managerul
Cache Managerul
Managerul de memorie virtuală
Componente speciale ale executivului
Managerul de obiecte
Crează, gestionează si distruge obiectele executiv
Funcţii LCP (Local Procedure Call)
Execuţie de proceduri inter-proces
Versiune optimizată a RPC
Biblioteca run-time
Operatii cu şiruri, matematice, etc.
Rutine de suport
Alocator de memorie (paged şi non-paged)
Subsisteme de mediu
Prezintă utilizatorului mai multe vederi prin care
acesta să acceseze funcţiile sistem
În W2K există trei subsisteme
OS/2
POSIX
Win32
Win32 este necesar, OS/2 si POSIX sunt opţionale
şi sunt încarcate doar la cerere
Fiecare subsistem are asociat un proces
Subsistemul Win32