File Structure & I/O 파일 구조체와 I/O [ File ] File : Byte들의 Sequence. : 모든 I/O Device도 File로 취급. : File은 Position(Offset) 정보를 가지고 있음. · Regular File : 임의의 데이터가 포함된 파일. : Text File과 Binary File로 구분한다. ( Binary File의 경우 Object File이나 Image File 등을 말한다. Kernel은 이 둘의 차이를 인지하지 못함 ) · Directory : 파일을 구분하기 위해 사용되는 이름공간(namespace). : File Name과 Inode Number로 구성되어 있다. ( inode는 index node라는 뜻 ) : .은 현재 디렉토리, ..
Signal 시그널 [ Signal ] Signal : 시스템에서 발생하는 이벤트에 대한 작은 Message. : Kernel이 목적지 프로세스(Destination Process)에 Signal Number를 전송. : 프로세스 및 Kernel이 다른 프로세스를 중단하는 것을 허용. : 소프트웨어 인터럽트(Software Interrupt)라고 하는 인터럽트의 한 종류이다. Pending & Blocked Bits : Kernel은 각 프로세스에서 Pending과 Blocked Bit를 유지. · Pending : Signal이 보내졌지만 아직 도착하지 않은 상태를 표시. → 처리 대기중인 Signal. ( Signal 전송 → Pending Bit Set ) : 이벤트가 전송되면 Set, 도착(Rec..
Process의 생성과 종료 [ Process 생성 ] · Directed : 지시된 프로세스 생성. : PCB 초기화. · Cloning : 정확한 복제본 생성. : 부모의 가상 주소의 복사본을 가져옴. → Code, Stack, Heap, Register 등등 동일하지만, Pid는 다름. : fork() 시스템 콜로 실행. → Process Spawning이라고 함. : 서로 분리된 State로 진행. → 서로 독립적. : Parent와 Child의 실행순서는 비결정적. : 한 번의 호출로 두 번의 반환이 일어난다. → Call once, return twice ( 부모 프로세스는 자식 프로세스의 pid를,자식 프로세스는 0을 Return ) : 프로세스 생성 속도가 빠르고, 추가 작업 없이 자원 상..
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..