Olika OS En översikt av ett par OS Titt på hur de gör Unix, Linux och Windows Unix Många varianter Mycket gemensamt Unix En del som skiljer
Begrepp Hur skapas en process Deamon rocess Föräldrar & barn rocesskommunikation ipes - signaler Zombie
Trådar - Unix pthreads User space Kernel space rocesser implementation Två delar - user och kernel rocess table (finns alltid) arametrar för schemaläggning Olika minnesreferenser Signaler Diverse Implementation User structure Maskinregister Tillståndet för systemanrop Schemaläggning rio-nivåer Round-robin -20 20 File descriptors Accounting Kernel stack
Boot En process Läser första sektorn (MBR) Läser in kärnan Hoppar till kärnan Fixa till systemet för körning Device drivers - statiska/dynamiska rocess 0, 1 och 2 Minnesmappad fil U n i x a n v ä n d e r p a g i n g Demand paging User structure + page table Om detta finns i minnet så kan processen schemaläggas age daemon Core map
Algoritm age deamon kollar med jämna mellanrum Finns tillräckligt med lediga frames? Jäpp - Gör ingenting Nix - Flytta sidor så att det finns tillräckligt Algoritm Klocka med en visare Klocka med två visare Mycket byte och inte tillräckligt med sidor swapper flyttar processer till disk System calls I/O component Memory mgt component rocess mgt component Linux Terminals Line discipline Character device drivers Virtual file system Sockets Network protocols Network device drivers File systems Generic block layer I/O scheduler Block device drivers Virtual memory aging page replacement age cache Signal handling rocess and thread creation & termination CU scheduling Interrupts Dispatcher
rocess descriptor (task_struct) Trådar - Linux 1. Scheduling parameters 2. Memory image 3. Signals 4. Machine registers 5. System call state 7. Accounting 8. Kernel stack 9. Miscellaneous clone mer kontroll Flag Meaning when set Meaning when cleared CLONE_VM Create a new thread Create a new process CLONE_FS Share umask, root, and working dirs Do not share them CLONE_FILES Share the file descriptors Copy the file descriptors CLONE_SIGHAND Share the signal handler table Copy the table CLONE_ID New thread gets old ID New thread gets own ID 6. File descriptor table CLONE_ARENT --- New thread has same parent as caller New threads parent is caller er CU runqueue Schemaläggning Linux Kernel threads Flags CU Static_prio < > 3 klasser av trådar Active 1) Real-time FIFO 2) Real-time round robin Expired < > riority 0 3) Timesharing Array[0] riority 139 riority 0 Array[1] riority 139
rocess 3GB adress + 1GB reserverat Kärna alltid i minne age global directory age upper directory age middle directory age table age Grupp av fria sidor En process kollar det finns tillräckligt Nya lediga genom att kolla vilka som använts minst, delade sidor som inte används och vanliga sidor Annan process skriver modifierade sidor till disk Global directory Upper directory Middle directory age Offset Virtual address Minneshantering Buddy algorithm Windows
Object Manager En enhet => full koll och enhetligt gränssnitt Skapas vid boot aged / non-paged Säkerhet Object name space Schemaläggning rocesser: realtime, high, above normal, normal, below normal, idle. Trådar: time critical, highest, above normal, normal, below normal, lowest, idle. 42 => 32 Schemaläggning Basprioritet Nuvarande prioritet rioritetskö Round-robin Trådbaserat Tillfällig höjning rioritetsinversion
Schemaläggning Ingen central tråd Tråden går in i kernel Tråd blockar Signal Quantum IO klar rocesser Jobs - samling processer rocess - resurser Thread - schemaläggs Fiber - tråd i user space Ingen barn - förälder relation Wait klar rocess Behöver inte byta adressområde, snabbare, mindre adressområde Sidorna kan vara i tre tillstånd: free, commited, reserved aging files. Mappa filer i minne (filen och minnet kan vara ur sync) Stödjer delat minne Implementation Demand paging Försöker hålla ett visst antal lediga sidor Varje process har en working set, med max och minimum (kan ändras) Använder en lokal algoritm med lite extra styrning baserat på det globala läget. Balance set manager => Working set manager (stora passiva först, sedan mindre, sist den aktiva) Copy-on-write
age lists Symbian OS kernel structure phone display sockets nanokernel multimedia Symbian OS kernel Microkernel Servers User-mode Applications