페이징(Paging) 페이징은 어떤 프로세스의 메모리 공간을 연속되지 않게 쪼개어서 관리하는 것을 의미한다. frame - 물리 메모리를 고정된 크기로 쪼갠 것 page - 논리 메모리를 동일한 크기의 블록으로 쪼갠 것 페이징 방법 페이지 번호와 페이지 오프셋을 통해 논리 메모리 주소를 표현한다. 아래 그림의 페이지 테이블에서 p 값(페이지 번호)에 해당하는 f 값(프레임 번호)을 알 수 있다. Free-Frame-List 리스트로 구현된 free-frame list에서 차례로 프로세스의 페이지를 매핑하는 방식으로 메모리를 할당한다. PTBR (page-table base register) PTBR에 페이지 테이블의 시작점 주소를 저장하여 CPU에서 페이지 테이블에 접근하는 시간을 줄인다. TLB (Tr..
Mass-Storage Structure 일반적으로 하드디스크 드라이브 또는 비휘발성 메모리를 의미한다. HDD 스케쥴링 HDD 스케쥴링의 목적 탐색 시간 최소화 한 번에 전송할 수 있는 데이터 양 최대화 FIFO 먼저 오는 것 먼저 처리하는 스케쥴링 방식 SCAN 한쪽 끝으로 갔다가 다른 쪽 끝으로 움직이면서 처리하는 스케쥴링 방식 C-SCAN(Circular-SCAN) 0으로 갈 때는 처리하지 않고 다시 출발할 때 처리하는 스케쥴링 방식 Boot Block 컴퓨터를 구동시키기 위해 필요한 정보들이 저장되어 있는 디스크 영역 RAID(Redundant Arrays of Independent Disks) 여기를 참고하자. RAID 레벨 I/O System Memory-mapped I/O I/O 주소 범위..
인프런에 무료로 공개되어 있는 주니온님의 운영체제 공룡책 강의 내용을 정리한 글입니다. 수강해보시는 걸 추천드려용 메모리 메모리는 주소를 가진 바이트로 구성된 큰 배열이다. 메모리 주소 공간을 각 프로세스가 따로 관리하기 위해서 메모리 공간을 구분할 필요가 있는데, 이 구분을 base register와 limit register를 통해 정한다. 메모리 공간 보호 (Protection for memory space) 주소 할당 (Address Binding) source program - symbolic address object file - relocatable address executable file - logical address(논리적 주소) program in memory - physicla a..
인프런에 무료로 공개되어 있는 주니온님의 운영체제 공룡책 강의 내용을 정리한 글입니다. 수강해보시는 걸 추천드려용 프로세스 간 통신(IPC) 여러 프로세스가 동시에 실행되면서 서로 협력해야 하는 경우가 생긴다. 이를 위해 데이터를 공유하거나 메시지를 주고받는 것을 프로세스 통신이라 한다. IPC의 방식 공유 메모리 (shared memory) 방식 메시지 전송 (message passing) 방식 Producer-Consumer 문제 생산자는 정보를 생성하고, 소비자는 정보를 소비하는 모델. 공유 메모리 방식으로 해결 두 개의 프로세스가 동시에 실행되면서 cpu를 번갈아가면서 선점할 때, buffer를 공유메모리로 만들어 통신하는 방식 생산자는 buffer를 채우고 소비자는 buffer를 비움. 만약 b..
인프런에 무료로 공개되어 있는 주니온님의 운영체제 공룡책 강의 내용을 정리한 글입니다. 수강해보시는 걸 추천드려용 프로세스의 개념 OS의 가장 기본적인 역할은 프로세스를 관리하는 것이다. Storage에 있는 프로그램을 Memory에 load 하면, 실행 중인 프로그램(program in execurtion)이 된다. 이것이 프로세스이다. Text section : 실행 가능한 코드를 저장하는 영역, 코드 영역이라고도 함. Data section : 전역 변수를 저장하는 영역 Heap section : 프로그래머가 필요에 따라 직접 메모리를 할당하는 영역 Stack section : 함수를 호출할 때 파라미터나 반환 주소, 지역 변수 등을 저장하는 영역 프로세스의 상태 및 생명 주기 New : 프로세스가..
CPU 스케쥴링 하나의 cpu를 여러 가지 프로세스가 메모리에 로드되어서, 프로세스가 cpu를 선점해서 concurrent 하게 실행하는 것을 멀티 프로세싱, 멀티프로그래밍, 멀티 태스킹이라고 한다. 이때 CPU의 효율성을 높이기 위해 CPU스케쥴링을 한다. cpu burst time, i/o burst time CPU burst time이 많은 것을 CPU bound라고 하고, I/O burst time이 많은 것을 I/O bound라고 한다. 선점형(preemptive)과 비선점형(non-preemptive) 선점형은 현재 작업 중인 프로세스를 쫓아내고 CPU를 점유하는 방식이다. 반면에 비선점형은 프로세스가 CPU를 선점하고 나면 자발적으로 나오기 전까지 내버려 두는 방식이다. Decision Ma..