Concepts: Virtualization <--- x = new Array(5) x is virtual memory created Treading <--- 1 [ld 5,ax] [ld 5,ax] Exec order! 2 [inc ax] [inc ax] 3 [str 5] [str 5] Memory protection <--- 0[10101101] 1[mov ax,0] <--- How to prevent this? 2[mov ax,9] <--- This is ok. File System <---- [name:addr:size] <-- Address table [1111:1011:0110] <-- In binary 1011[101011--------] <-- 6bits at 1011 -------------------------------- Main OS problems: Protect the memory from overwrite --> Solution ---> Put extra layer[Virtualize] ---> CPU registers [Mem bounds] ---> Mem key protect[Crypto key] Processes taking too much of time --> Solution ---> Cooperative way[Self pause] ---> Non Cooperative[Chip Timer] -------------------------------- Kernel boots and: Set up for interrupt table -- Pointer of table in x86 IDTR register [INT_ID:INT_CODE] [INT_ID:INT_CODE] [INT....SO ON...] Kernel stack pointer in TR -- Task Register ptr.>Task State Segment