운영체제란? > 하드웨어, 시스템 리소스를 제어하고 프로그램에 대한 서비스를 지원하는 시스템 소프트 웨어 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 1. 운영체제의 목표 1) 컴퓨터 시스템을 편리하게 사용할
Process 개념 ✔️ Process Context ✔️ Process State ✔️ Context Switch ✔️ Scheduler ✔️ Thread 개념 Process와 Thread 차이 프로세스 > 실행중인 프로그램 (program in excution)
프로세스 주소공간 프로세스 > 실행 중인 프로그램 프로세스는 메모리에 저장되어 CPU에 의해 실행된다 시스템에서 구현될 기본 작업 단위를 나타내는 엔티티로 정의됨 프로그램(프로세스)이 메모리에 로드되면 Stack, Heap, Text, Data 부분으로 구분할 수
컴퓨터 시스템 CPU CPU는 클럭마다 순차적으로 메모리에서 명령을 읽어와서 실행 클럭(clock)이란 CPU의 속도를 나타내는 단위 다음 명령을 실행하기 전에 들어온 인터럽트가 있는지 확인 Device Controller > I/O 장치를 관리하는 작은 CPU
IPC > ### 프로세스 간 통신(inter-Process Communication) > 프로세스들 사이에서 서로 데이터를 주고받는 방법이나 경로 프로세스는 종종 다른 프로세스와 통신할 필요가 있다. 인터럽트를 사용하지 않는 잘 정의된 형태의 프로세스간 통신에 대한
CPU 스케줄링 ready queue에 있는 프로세스 중에서 어떤 프로세스에게 CPU를 줄까 결정하는 문제 누구한테 줄거냐 줬다면 중간에 뺏어올 것이냐 계속 줄거냐 공평하지만 효율적이여야 함 비선점형 방식 강제로 빼앗지 않는 방법 선점형 방법 강제로 빼앗을 수
Process Synchronization Synchronization 해결 충족 조건 Mutual Exclusion 어떤 프로세스가 critical section을 수행 중이면 다른 모든 프로세스는 critical section에 들어갈 수 없다 Progress 아
File System File > 정보를 저장하기 위해 명명된 디스크에 저장하는 단위 이름을 통해 접근 비휘발성인 보조기억장치에 저장 장치를 관리하기 위해 file이라는 논리적 단위를 사용 연산: create, read, write, reposition(lseek)
Memory > 메모리는 주소를 통해 접근하는 체계 주소의 종류 1) Logical address 논리적인 주소 가상 주소(Virtual address) 프로세스마다 독립적으로 가지는 주소 공간 각 프로세스마다 0번지 부터 시작 CPU가 바라보는 주소는 logical
물리적인 메모리 관리를 어떻게 할 것인가메모리는 일반적으로 두 영역으로 나누어 사용OS 상주 영역: 높은 영역, 커널 코드사용자 프로세스 영역: 낮은 영역, 사용자 코드연속 할당프로그램이 메모리에 통째로 올라가는 방법프로세스가 메모리에 연속적인 공간에 적재Fixed p
Noncontiguous allocation프로세스의 가상 메모리를 동일한 사이즈(page)로 나누어 저장하는 방식 가상 메모리의 내용이 page단위로 불연속하게 저장물리 메모리는 page가 들어올 frame으로 나눔 (= page와 같은 크기)page 중 일부는 물
Paging : 프로그램을 구성하는 주소 공간을 같은 크기의 page 단위로 쪼개기Segmentation : 프로세스를 구성하는 주소 공간을 의미 단위로 쪼개기 ex) code - data - stack세그먼트 별로 주소변환을 해야 하므로 Segment Table을
paging 기법을 사용하는 것으로 가정(실제로 대부분의 시스템이 paging 기법을 사용)요청이 있을 때 page를 메모리에 올리기I/O 양의 감소Memory 사용량 감소빠른 응답 시간더 많은 사용자 수용페이지 테이블의 엔트리 중 하나로 Valid / Invalid
process에 얼마 만큼의 page frame을 할당해줄 것인가메모리 참조 명령어 수행 시 여러 페이지를 동시 참조가 필요한 경우 최소한 할당되어야 하는 frame 수가 존재최소한의 allpcation이 아니면 매번 page fault가 발생할 수 있음ex) Loop