본문 바로가기

전체 글44

25. CPU 스케줄링 알고리즘 1. 선입 선처리 스케줄링FCFS_first come first served 스케줄링준비 큐에 삽입된 순서대로 처리하는 비선점 스케줄링먼저 CPU에 요청한 프로세스부터 CPU 할당프로세스들이 기다리는 시간이 매우 길어질 수 있다는 부작용= 호위효과2. 최단 작업 우선 스케줄링SFF_shortest job First 스케줄링호위효과를 방지하기 위한 방법CPU 사용이 긴 프로세스는 나중에 실행, CPU 사용 시간이 짧은 프로세스는 먼저 실행CPU 사용 시간이 가장 짧은 프로세스부터 처리하는 스케줄링 방식선점형 비선점형 모두 적용 가능하지만 기본적으로 비선점형 스케줄링에 해당한다.3. 라운드 로빈 스케줄링RR_round robin 스케줄링선입선처리 스케줄링 + 타임 슬라이스타임 슬라이스 : 각 프로세스가 CP.. 2024. 10. 28.
24. CPU 스케줄링 1. 프로세스 우선순위CPU 스케줄링은 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것을 말한다.일반적으로 입출력 작업이 많은 프로세스의 우선순위는 CPU작업이 많은 프로세스의 우선순위보다 높다.우선순위는 프로세스의 PCB에 저장되어 운영체제는 PCB를 보고 CPU를 얼마나 사용할지 결정한다.2. 스케줄링 큐운영체제가 효율적으로 프로세스의 PCB를 확인하고 자원을 이용할 프로세스의 순서를 결정하기 위해, 프로세스들이 필요한 자원에 대기하는 줄이 스케줄링 큐다.-준비큐와 대기큐3. 프로세스 상태 다이어그램 4. 선점형과 비선점형 스케줄링 위와 같은 상황에서 CPU는 현재 CPU를 사용 중인 프로세스로부터 CPU 자원을 빼앗을지 끝날 때까지 기다리는지에 따라 선점형 비선점형으로 나뉜다.. 2024. 10. 26.
23. 스레드 스레드 thread 는 프로세스를 구성하는 실행 흐름의 단위로 하나의 프로세스는 하나 이상의 스레드를 가질 수 있다.  1. 프로세스와 스레드실행 흐름이 하나인 프로세스를 단일 스레드 프로세스라고 한다.실행 흐름이 여러 개인 프로세스를 멀티 프로세스라고 한다.- 프로세스를 이루는 여러 명령어를 동시에 실행이 가능하다.스레드의 구성 요소 > 스레드 ID, 프로그램 카운터, 레지스터 값, 스택 등 실행에 필요한 최소한의 정보cf) 프로세스를 이루는 스레드들은 그 프로세스의 자원을 공유할 수 있다 2. 멀티 프로세스와 멀티 스레드 프로세스를 fork하면 코드/데이터/힙 영역 등 모든 자원이 복제되어 저장된다.저장된 메모리 주소를 제외하면 모든 것이 동일한 프로세스 두 개가 통째로 메모리에 적재된다.fork를 .. 2024. 10. 25.
22. 프로세스 상태와 계층 구조 운영체제는 사용 중인 프로그램 즉 프로세스의 상태를 PCB에 기록하여 관리한다.또한 동시에 실행되는 각기 다른 상태의 프로세스를 유기적으로 실행하기 위해 계층적으로 관리한다.1. 프로세스 상태생성 상태- 이제 막 메모리에 적재되어 PCB를 할당받은 상태- 준비가 완료되면 준비 상태로 바뀐다준비 상태- CPU를 할당 받아 실행할 수 있지만 자신의 차례가 아니면 기다리는 상태- 자신의 차례가 된다면 실행 상태로 바뀐다실행 상태- CPU를 할당 받아 실행 중인 상태- 할당된 시간 모두 사용 시 ( 타이머 인터럽트 발생 시 ) 준비 상태로- 실행 도중 입출력장치를 사용하면 입출력 작업이 끝날 때까지 대기 상태대기 상태- 프로세스가 실행 도중 입출력장치를 사용하는 경우- 입출력 작업은 CPU에 비해 느리기에 이 .. 2024. 10. 24.
21. 프로세스 개요 실행 중인 프로그램을 프로세스라고 하며프로그램은 실행되기 전까지는 보조기억장치에 있는 데이터 덩어리일 뿐이다.1. 프로세스 직접 확인하기포그라운드 프로세스 foreground process : 사용자가 볼 수 있는 공간에서 실행되는 프로세스메모장, 웹 브라우저 등백그라운드 프로세스 background process 1) 사용자와 직접 상호작용이 가능한 백그라운드 프로세스2) 사용자와 상호작용하지 않고 정해진 일만 수행하는 프로세스데몬, 서비스2. 프로세스 제어 블록모든 프로세스는 실행을 위해 CPU가 필요하다 하지만 CPU 자원은 한정되어 있다.그래서 프로세스들은 돌아가며 한정된 시간만큼만 CPU를 이용한다. 이때 타이머 인터럽트가 발생하여 차례가 넘어간다. 빠르게 번갈아 가는 프로세스들을 관리해야 하기.. 2024. 10. 23.
20. 운영체제의 큰 그림 커널시스템 콜과 이중 모드운영체제의 서비스 종류1. 커널운영체제의 심장과 같은 역할을 하며 현존하는 프로그램 중 규모가 가장 큰 프로그램 중 하나이다.cf) 리눅스 운영체제의 소스코드는 2700만 줄이다. 운영체제의 핵심적인 기능을 담당하며 운영체제에서 커널에 속하지 않는 기능은 유저 인터페이스 정도이다.2. 이중모드와 시스템 호출운영체제는 응용 프로그램들이 자원에 접근하려 할 때 오직 자신을 통해서만 접근하도록 하여 자원을 보호한다. 이중 모드CPU가 명령어를 실행하는 모드를 크게 사용자 모드와 커널 모드로 구분하는 방식사용자 모드- 운영체제 서비스를 제공받을 수 없는 실행 모드- 커널 영역의 코드를 실행할 수 없는 실행 모드- 자원 접근 불가커널 모드- 운영체제의 서비스를 제공받을 수 있는 실행 모드.. 2024. 10. 22.