컨텍스트 스위칭(Context Switching)은 CPU가 실행 중인 프로세스를 중단하고, 다른 프로세스를 실행하기 위해 상태를 저장하고 복원하는 과정이다.
1. 현재 프로세스 상태 저장: 실행 중인 프로세스의 PCB에 CPU 레지스터 값(CP, SP 등)을 저장한다.
2. 다음 프로세스 준비: 다음 실행할 프로세스의 상태 정보를 메모리에서 읽어온다. 저장매체에서 코드를 가져오는 과정은 포함되지 않는다.
3. 레지스터 복원: 읽어온 프로세스의 PC와 SP 값을 CPU 레지스터에 복원한다.
4. 프로세스 실행: CPU에서 다음 프로세스를 실행한다.
IPC는 프로세스 간 통신을 의미하며, 운영체제에서 서로 다른 프로세스가 데이터를 주고받거나 동기화하는 방법을 제공한다. IPC의 주요 기법은 파일, 파이프, 소켓, 공유 메모리, 메시지 큐 등이 있다.
1. 파일은 데이터를 교환하기 위한 간단한 형태의 IPC 기법이다.
2. 사용자 영역: 대부분의 IPC는 커널 영역을 사용하며, 사용자 영역만 활용하는 경우는 드물다.
3. 메시지 큐는 데이터 교환을 위한 구조적 IPC 기법이다.
스레드는 프로세스 내 실행 단위로, 하나의 프로세스에서 여러 개의 스레드를 생성할 수 있다. 스레드는 같은 프로세스의 메모리 공간(코드, 데이터, 힙)을 공유하지만, 각각 독립적인 스택을 가진다.
스레드는 경량 프로세스(Light Weight Process)라고 불리며, 프로세스보다 더 빠르게 생성되고 자원을 효율적으로 관리한다.
스레드 동기화 이슈는 여러 스레드가 공유 자원에 동시에 접근할 때 발생하며, 데이터 불일치나 충돌 문제가 생길 수 있다. 이를 해결하기 위해 상호 배제(Mutual Exclusion) 기법을 사용한다.
Mutex와 세마포어는 임계 구역(critical section)에 대한 동시 접근을 제어하기 위한 동기화 도구이다.
여러 프로세스가 서로 자원을 점유한 상태에서 상대방의 자원을 기다리며, 모든 프로세스가 멈춰버리는 상태를 말한다.
특정 프로세스가 우선순위가 낮거나 자원 할당이 계속 지연되어 실행되지 못하는 상태를 의미한다.
가상 메모리는 프로세스가 물리 메모리 크기를 초과하는 메모리를 사용하는 것처럼 동작하게 만드는 메모리 관리 기술이다. 이는 실제 메모리보다 적은 공간으로 다수의 프로세스를 동시에 실행할 수 있도록 설계되었다.
MMU(Memory Management Unit)는 하드웨어 장치로, CPU가 가상 주소를 사용할 때 이를 물리 주소로 변환하는 역할을 한다. 가상 메모리 시스템에서 핵심적인 역할을 하며, 프로세스의 메모리 접근을 관리한다.
페이징 시스템은 가상 주소 공간을 동일한 크기의 페이지 단위로 나누고, 이를 물리 메모리의 프레임에 매핑하는 메모리 관리 방식이다.
페이징 시스템은 가상 주소를 물리 주소로 변환하는 과정을 통해 메모리를 관리한다. 주요 단계는 다음과 같다:
1. 가상 주소 접근 시도: 프로세스가 특정 가상 주소에 접근을 요청한다.
2. 페이지 번호 확인: 요청한 가상 주소에서 페이지 번호(p)와 변위(d)를 추출한다.
3. 페이지 테이블 참조: 해당 페이지가 물리 메모리에 존재하면, 페이지 테이블을 통해 페이지의 시작 주소(프레임 번호)를 확인한다.
4. 물리 주소 계산: 물리 주소는 페이지 시작 주소(프레임 번호)와 변위(d)를 더해 계산한다.
프로세스가 구동될 때, 페이지 테이블의 기준 주소(base address)는 CPU의 CR3(Control Register 3) 레지스터에 저장된다.
페이지 폴트는 프로세스가 접근하려는 가상 메모리의 페이지가 물리 메모리에 없는 경우 발생하는 인터럽트이다. 이는 운영체제가 해당 페이지를 디스크에서 물리 메모리로 로드하도록 처리하는 중요한 과정이다.
페이지 교체 정책은 페이지 폴트가 발생했을 때, 메모리에 적재된 페이지 중 어떤 것을 교체할지 결정하는 알고리즘이다. 주요 정책은 다음과 같다:
1. OPT(Optimal Replacement): 가장 오랜 시간 동안 사용되지 않을 페이지를 교체한다.
2. LRU(Least Recently Used): 가장 최근에 사용되지 않은 페이지를 교체한다.
3. NUR(Not Used Recently): 최근 사용 여부에 따라 교체 대상을 결정한다.
LFU(Least Frequently Used)는 가장 적게 사용된 페이지를 교체하는 페이지 교체 정책이다.
다중 단계 페이징 시스템은 페이징 테이블을 여러 단계로 나누어 메모리를 효율적으로 관리하는 방식이다. 주요 특징은 다음과 같다:
스레싱(Thrashing)은 반복적인 페이지 폴트로 인해 과도한 페이지 교체 작업이 발생하여, 프로세스가 실제 작업을 거의 수행하지 못하는 상태를 말한다.
inode 방식 파일 시스템은 파일의 메타데이터와 실제 데이터를 효율적으로 관리하기 위한 구조로, 다음과 같은 특징을 가진다:
가상 파일 시스템(VFS)은 운영체제가 다양한 파일 시스템을 통합된 인터페이스로 관리할 수 있도록 설계된 시스템이다. 주요 특징은 다음과 같다: