OS - Ch 1,2
Reference : Operating Systems: Three Easy Pieces, Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
Introduction To OS
- OS provides system calls that allow application programs request to use.
- OS privdes the calss for program execution, memory access, etc
- Hence also be referred as providing a “standard library”
- Virtualization allows many programs to share a CPU, and to be executed concurrently.
- Each program can access to its resourse and instructions.
- Hence called as a “resource manager”
Virtualization
CPU
- Logical transformation of a/few CPU/s into a number of it to run many programs concurrently.
Memory
- Physical memory is an array of byte which has address.
- Do not forget the insturctions are stored within its memory.
- Run the same program concurrently
- It will have the same memory allocation (002000000 in the given example)[^1]
- Each process has its own virtual address space
- The actual memory address (physical) is different.
- It will have the same memory allocation (002000000 in the given example)[^1]
[^1]: Make sure address-space randomization is diabled -> enabled for security reason regarding stack-smashing attacks.
Concurrency
- It becomes an issue because
- CPU executes one insturction at a time. Hence, insturctions are not atomic.
Persistence
- Device like DRAM saves data in volatile^2
- Disconnection or crash result with data loss.
- OS software manages disk : file system.
- Unlike CPU or memory, OS does not do virtualization on disk, but rather assume users may want to share file info.
- For performance, most File System delays writes, and batch them (try) into larger groups.
- For persistence, most file system incorporate intricate write protocol such as journaling, or copy-on-write.
Design Goals
- Define Abstractaions to ease the usage of computer system
- Abstraction allows:
- Able to write codes in C (higher lang) even if you do not know Assembly.
- Able to write assembly without considering logic gates.
- Able to write processes without having knowledge in transisters.
- Abstraction allows:
- Minimize the overhead (performance)
- Having virtualization and easy-to-use system is meaningful but not necessary.
- Safety between OS and Application programs.
- OS needs to ensure the execution of a program does not negatively influence the others
- Safety is a key concept of Isolation principle.
- Provides high level reliability
- OS fails, all the applications bulit on fail.
- Energy-efficiency, security, mobility and so on…