전체 글

전체 글

    [운영체제-7] 메인 메모리 / 가상 메모리

    1. 메인 메모리 메인 메모리 CPU가 직접 접근할 수 있는 메모리 프로그램이 실행될 때 프로그램이 복사되어 메모리에 적재 -> 프로세스가 됨 CPU는 PC가 지시하는대로 연산을 수행한 후 메인 메모리에 데이터를 저장하거나 필요한 데이터를 요구 기본적인 메모리 구성 각 프로세스에는 별도의 메모리 공간이 존재. 개별적인 메모리 공간을 분리하기 위해, 특정 프로세스만 접근할 수 있는 합법적인 (legal) 메모리 주소 영역을 설정, 프로세스가 합법적인 영역만을 접근하도록 하는 기능이 필요 기본 레지스터 : 가장 작은 합법적인 물리 메모리 주소 상한 레지스터 : 주어진 영역의 크기 메모리 공간의 보호 기준과 상한 레지스터 하드웨어를 통하여 유저 프로그램이 운영체제나 다른 유저의 코드나 데이터 구조를 수정하는 ..

    [운영체제-6] 프로세스 동기화

    1. 임계구역 문제와 그 해결안 데이터 정합성 이슈의 발생 동시에 공유 데이터에 접근한다면 데이터 불일치가 발생할 수 있음 데이터 일관성을 유지하려면 협력 프로세스 간의 순차적인 실행을 보장하는 메커니즘이 필요 임계 구역 (Critical-Section) 각 프로세스에는 임계 구역이라고 하는 코드 세그먼트가 존재 프로세스가 액세스하고, 업데이트하는 데이터, 적어도 하나의 다른 프로세스와 공유됨 하나의 프로세스가 임계구역에서 실행 중일 때, 다른 프로세스들은 해당 임계 구역에 접근할 수 없음 일반적으로 프로세스는 진입 구역/퇴출 구역, 나머지 구역으로 구성 임계 구역 문제 해결을 위한 요구 조건 상호 배제 (Mutual Exclusion) 프로세스 P가 임계 구역에서 실행될 때, 다른 어떤 프로세스도 임계..

    [운영체제-5] CPU 스케줄링

    1. CPU 스케줄링 기본 개념 CPU 스케줄러 메모리에 있는 프로세스들 중 실행 준비가 되어있는 ready 상태의 프로세스를 선택하고, 그 프로세스에 CPU를 할당 CPU 스케줄링 결정은 다음의 4가지 상황에서 발생 한 프로세스가 실행 상태에서 대기 상태로 전환될 때 (Running -> Waiting) 프로세스가 실행 상태에서 준비 완료 상태로 전환될 때 (Running -> Ready) 프로세스가 대기 상태에서 준비 완료 상태로 전환될 때 (Wating -> Ready) 프로세스가 종료될 때 (Exit) 디스패쳐 Context Switch 사용자 모드로 전환 프로그램을 다시 시작하기 위해 사용자 프로그램의 적절한 위치로 이동 디스패치 지연 (Latency) 하나의 프로세스를 중지하고 다른 프로세스를..