-
System program은 프로그램 개발과 실행환경을 제공한다.
File manipulation: create, delete, copy, rename, ...
status information:
programming language support
...
Programming language support : compiler, assemblers, debuggers, interpreters.
compiler : 여러번 실행할때는 interpreter보다 빠르다.
interpreter: 처음 한번 실행할때는 compiler보다 빠르다. (대표적인 interpreter language: python)
Program loading and execution: absolute loaders, relocatable
Background services
Launch at boot time.
Run in user context, not in kernel context.
Linkers and Loaders
Source code compiled into object files designed to be laoded into any physical memory location -> relocatable object file.
Linker combines these into single binary executable file.
Also brings in libraries.
Relocation assigns final addresses to program parts and adjusts code and data in program to match those addresses.
Modern general purpose systems don't link libraries into executables.
Rather, dynamically linked libraries(DLLs) are loaded as needed shared by all that use the same version of that same library(loaded once)
OS system design and implementation
Internal structure of different operating system can vary widely
user goals: convenient, easy to learn, reliable, safe, fast
system goals: easy to design, implement, maintain, as well as flexible, reliable, error-free and efficient.
Policy(Goal): What will be done?
Mechanism: How to do it?
Implementation
OS Structure
Arduino: single tasking, No OS, bootlloader loads program.
Monolithic structure - Original UNIX : System programs, kernel.
Layered approach
Micro Kernel: communication takes place between user modules using message passing.
Modules: loadable linked modules.
Hybrid Systems: actually not one pure model.
macOS and iOS structure
'OS' 카테고리의 다른 글
6_1 동기화 (0) 2021.05.15 Process (0) 2021.03.30 컴퓨터 시스템 개요 (0) 2021.03.18 컴퓨터의 성능 (0) 2019.07.11