
매핑(Mapping) :OS가 물리 메모리와 가상 메모리 사이에서 프로그램이나 데이터를 대응시키는 것을 '매핑(Mapping)'이라고 합니다. => 물리메모리와 가상 메모리를 대응시키는 것을 말한다 페이징(Paging) 고정 길이 페이지 단위(4KB)로 매핑을 수행하는 것을 '페이징(Pageing)'이라고 합니다. 페이징이 번번이 일어나는 것을 '스래싱(Thrashing)'이라고 하는데, 이는 CPU의 이용효율 저하의 원인이 됩니다. 세그먼테인션(Segmentation) :가변 길이 세그먼트 단위로 매핑을 수행하는 것을 '세그먼테이션(Segmentation)이라고 합니다. 세그먼트에는 프로세스에서 사용하는 메모리를 연속해서 할당합니다.

물리 메모리 컴퓨터에 실제로 장착되어 있는 메모리를 '물리 메모리'라고 한다 가상 메모리 요즘 나온 OS는 하드디스크 안에 페이징파일(스왑 파일)이라는 파일을 작성합니다. 이 파일과 물리 메모리를 합쳐서 가상의 메모리 영역으로 간주함으로써 물리 메모리의 용량을 초과한 메모리를 다룰 수 있습니다. 스왑(Swap) 메모리 용량이 부족할 때 물리 메모리와 페이징 파일 사이에서 메모리상의 프로세스를 일시적으로 교환하는 것을 '스왑'이라고 합니다. 스왑은 하드디스크에 자주 액세스하므로 퍼모먼스 저하로 이어집니다

스레드 (Thread) 프로세스 안의 프로그램 실행의 흐름을 스레드(Thread)라고 합니다. 스레드는 분기가 가능해서 여러 개의 스레드를 동시에 실행할 수 있습니다 이것을 멀티스레드라고 합니다. 스레드와 프로세스의 차이 스레드는 프로세스를 동시에 여러 개 실행하는 것과 다른 점은 동일한 프로세스의 스레드는 같은 메모리 공간을 참조한다는 점입니다. 스레드는 CPU를 사용하는 최소 단위이며 , '라이트 웨이트 프로세스(Light Weight Process)'라고도 부릅니다.

배타 제어(Exclusive control) 여러 개의 프로세스가 파일이나 데이터베이스에 동시에 액세스하면 데이터의 무결성이 손상될 수 있습니다. 처리가 끝날 때까지 하나의 프로세스에게 자원을 독점시키는 것을 '배타제어'라고 합니다. (배타 제어에서는 데드락을 주의해야 한다.) 데드락(Dead Lock) : 2개의 프로세스가 공유 자원을 잠근 채로 서로의 공유 자원에 액세스하려고 하면 양쪽 프로세스가 모두 영구적으로 대기 상태가 되는데, 이를 '데드락(dead lock)'이라고 합니다. 데드락을 피하기 위한 방법에는 '세마포'와 '뮤텍스'가 있습니다 이 중 '뮤텍스'는 세마포의 카운터 초기값이 1인 경우와 똑같은 뜻입니다. 1 ) 세마포(Semaphore) 정해진 수 이상의 프로세스가 공유 자원에 동시 ..

fork 와 exec UNIX 계열의 OS에서 시스템콜에 의해 프로세스를 복사하는 것을 'fork'라고 합니다. 복사되는 쪽을 부모 프로세스 , 복사된 쪽을 '자식 프로세스'라고 한다. 또한 자식 프로세스에서 다른 프로그램을 실행하도록 지시하는 것을 'exec'라고 한다. fork를 하면 자식 프로세스용으로 새로운 PCB와 메모리 공간이 마련된다. wait 자식 프로세스의 처리가 끝나면 부모 프로세스에게 신호(시그널)가 보내지므로 이것을 기다림으로써 부모는 자식 프로세스가 종료까지 대기할 수 있습니다. 그 후에 wait 시스템 콜에 의해 자식 프로세스에게 마련되었던 PCB와 메모리가 제거됩니다. [language=C] #include int main() { pid_t pid = fork()..

스케줄링(Scheduling) OS가 여러 개의 프로세스를 처리할 때 CPU를 할당할 순서를 정하는 것을 스케줄링이라고 합니다. 또한 스케줄링을 하기 위한 소프트웨어를 스케줄러라고 합니다. 스케줄링의 종류 1) 라운드로빈 방식 (Round Robin Scheduling) : 프로세스가 기다리고 있는 순서대로 일정 시간씩 CPU를 할당해서 시간이 초과한 프로세스를 맨 마지막으로 돌리는 방식을 '라운드 로빈 방식(Round Robin Scheduling)'이라고 한다. 2) 우선순위 방식 (Priority Scheduling) : OS가 프로세스의 우선순위를 정해서 우선순위가 높은 프로세스부터 실행해 나가는 방식을 '우선순위 방식'이라고 합니다. 많은 OS가 우선순위 방식을 채택하고 있습니다.

프로그램 상태어(PSW: Program Status word) : 인터럽트로 인해 중단된 프로그램의 상태나 연산의 종료 상태를 저장해 두는 레지스터를 '프로그램상태어'라고 합니다. 프로세스 제어 블럭(PCB: Process Control Block) :각 프로세스의 CPU상태(컨텍스트)나 프로세스의 상태를 저장해 두는 메모리 영역을 프로세스 제어 블럭이라고 합니다 컨텍스트 스위치(Context Switch) : 인터럽트로 인해 프로세스를 전환할 때 OS가 컨텍스트를 PCB에 저장하고 복원하는 것을 '컨텍스트 스위치'라고 합니다.