Please enable JavaScript.
Coggle requires JavaScript to display documents.
OS Implementations - Coggle Diagram
OS Implementations
Ext2
i-node structure
-
-
-
-
-
-
-
-
blocks:
-
-
-
-
worst cases: lookup in lec notes 28,29
-
-
-
-
Symbolic link: file that contains a reference to another file. References the name, not the inode.
MIPS Processes
-
User Level Threads
UL has a thread control block, ready queue, blocked queue and dispatcher.
-
If a thread waits for a resource held by another thread in the process, it is put on the blocked queue.
Pros:
- Much faster at thread switching.
- Can be tuned to the application
- Implementable on any OS
- Easy support of massive number of threads due to virtual memory.
Cons:
- Threads have to yield manually. Requires cooperative multithreading.
- Does not take advantage of multiple CPUs.
- If one thread causes the process to block, the entire thing blocks
Kernel Level Threads
-
Cons:
- Thread creation and destruction requires kernel entry and exit.
- More expensive than the user level
Pros:
- Preemptive Multithreading.
- Can overlap blocking I/O with computing.
- Can take advantage of multiprocessors.
Context Switch
-
Process:
- Trapframe pushed onto user level stack
- Push C activation stack (to handle the context switch)
- Push kernel state.
- Choose new process.
- Go back through that stack.
Ext3
-
Options
- Journal FS data structure updates
:check: Efficient use of journal space
:red_cross: Individual updates applied separately
:red_cross: Journal layer must understand FS semantics
- Journal disk block updates
:check: Multiple updates to the same block at the same time.
:check: FS-independent
:red_cross: Small updated update a block
-
System Calls
-
MIPS
Coprocessor 0
-
c0_status
KU: 0 for kernel, 1 for user
IE: 0 interrupts masked, 1 interrupts enabled
c, p, o: current, previous, old
-
-
Conventions
-
-
on return, a3 contains
0 on success, v0 contains successful result.
not 0 on failure, v0 contains the errno
-