Process와 Context Switching 프로세스와 컨텍스트 스위칭 [ Program & Process ] Program : 파일 시스템에 존재하는 실행 가능한 파일. : 실행되지 않은 정적(Static)인 상태. : Stack과 Heap이 존재하지 않음. Process : Program이 실행 중인 동적(Dynamic)인 상태. : 추상적인 부분이 존재. 1) 각각의 Program이 CPU를 독점적으로 사용하는 것 처럼 보이게 하지만, 뒤에는 수많은 동작 존재. → Context Switching에 의해 제공. 2) 각각의 Program이 Main Memory를 독점적으로 사용하는 것으로 보임. → 가상 메모리(Virtual Memory)에 의해 제공. : Kernel Code로 관리. · Mu..
Exceptional Control Flow와 System Call 예외적인 제어 흐름과 시스템 콜 [ Mode ] Mode Bit : 모드를 구분해주는 비트. Dual Mode : 운영 체제를 보호하기 위해 자원에 대한 접근 권한을 모드로 나눠놓는 방법. : 보통 0일 때 User Mode, 1일 때 Kernel Mode라 한다. 보호 영역 1. Privileged Instruction : Kernel Mode에서만 사용 가능한 명령어들. : Interrupt의 활성·비활성 관리, 프로세스 홀팅(halting), Mode Bit 변경, I/O 직접 접근 등 2. Memory Access : 유저 코드가 Kernel을 수정하지 못하도록 방지. : 아무 메모리나 읽고 쓰는 것을 방지. 3. Access t..
Linking Linking : 여러 개의 코드와 데이터를 통합·연결하여 실행될 수 있는 하나의 파일로 만드는 작업 [ Linking의 종류 ] Static Linking : Compile-Time에 수행되는 Linking. : 라이브러리를 같이 포함시켜 실행 파일을 만드는 방법. (소스 코드와 라이브러리를 merge한다고 표현) : 파일 수정 시 전체 파일을 모두 다시 Compile해야 하는 문제. : Redundancy 발생 가능. : -static 옵션으로 수행 가능. Dynamic Linking : Run-Time 또는 Load-Time에 수행되는 Linking. : Dynamic Linker가 호출될 때 Share 과정을 거침. : 메모리 상으로 효과적. : 수행 시간 중에 Linking이 진행..