- Services for the user: UI, program execution, I/O, file-system manipulation, communication, error detection.
- Services for the system itself: resource allocation, accounting (logging), protection and security.
- CLI (command interpreter / shell) reads and runs commands; GUI uses windows and a mouse; touch interfaces use gestures.
- System calls are the programming interface to OS services; programs usually reach them through an API (Win32, POSIX, Java API).
Asked in a real exam
🎯 How this can come up · 2 questions
The API that Unix-like systems give programmers is:
Correct: POSIX.
The three most common APIs for system calls include all EXCEPT:
Correct: Java Virtual Machine.
- The system-call interface uses a table indexed by system-call number; the caller doesn’t need to know how it is implemented.
- Passing parameters: in registers, in a block/table in memory (address in a register), or pushed on the stack.
🎯 How this can come up · 1 question
Which is NOT a way to pass parameters to a system call?
Correct: Through the file system.
- Types: process control, file management, device management, information maintenance, communications, protection.
Asked in a real exam
🎯 How this can come up · 1 question
Which system call creates a process in UNIX?
exec() replaces the program in an existing process.
- printf() is a C library function that eventually calls the write() system call; it is not itself a system call.
Asked in a real exam
🎯 How this can come up · 1 question
printf() in C is a system call.
False. It is a library function that invokes write().
- Layered: layer 0 = hardware … layer N = UI; each uses only the layers below. Advantage: easy debugging and maintenance. Disadvantage: hard to define layers, overhead.
Asked in a real exam
🎯 How this can come up · 1 question
Give one advantage of the layered approach.
Simple construction and debugging: each layer is debugged on top of already-verified lower layers, so an error is found in the layer being tested; layers can also be changed independently.
- Microkernel: move most services into user space; communicate by message passing. + easier to extend, port, more reliable and secure. − message-passing overhead.
Asked in a real exam
🎯 How this can come up · 2 questions
In a microkernel OS, most OS functionality runs:
Correct: In user-space processes.
Give one disadvantage of the microkernel approach.
Performance overhead: user-space services communicate through the kernel by message passing, which costs extra copies and context switches.
- Loadable kernel modules: core kernel + modules loaded as needed (like layers but any module can call any other).
- Hybrid systems mix structures: Linux/Solaris monolithic + modules; Windows mostly monolithic + microkernel parts; macOS/iOS Mach + BSD.
No slides match this filter.












