본문 바로가기

CS/OS(운영체제)10

[운영체제] 페이지 교체 알고리즘(FIFO, OPT, LRU), 쓰레싱, working set 운영체제 관련 글 순서 - 프로세스란 - 쓰레드 - CPU 스케줄링 - 동기화 툴 - 동시성 제어 예제 - 데드락 - 주 메모리 - 페이징과 스와핑 - 가상 메모리와 디맨드 페이징 - 페이지 교체 알고리즘(FIFO, OPT, LRU), 쓰레싱, working set Demand paging에서 고려해야할 사항 frame-allocation algorithm: 각각의 프로세스마다 몇개의 프레임을 할당시켜줄 것인가 page-replacement algorithm: 페이징 교체를 어떻게 할 것인가 페이징 교체 알고리즘(page-replacement algorithm) 앞의 글에서 page fault 시에 free frame을 찾아서 읽은 page를 할당해주는데, 메모리를 다 사용해서 free frame이 없다.. 2022. 1. 11.
가상 메모리(Virtual Memory)와 디맨드 페이징 운영체제 관련 글 순서 - 프로세스란 - 쓰레드 - CPU 스케줄링 - 동기화 툴 - 동시성 제어 예제 - 데드락 - 주 메모리 - 페이징과 스와핑 - 가상 메모리와 디맨드 페이징 - 페이지 교체 알고리즘(FIFO, OPT, LRU), 쓰레싱, working set 가상 메모리란 물리적 메모리의 한계를 극복하기 위한 기법. 가상메모리의 장점 실제 메모리 크기에 제약받지 않음. 파일,라이브러리 공유 및 프로세스 생성 시에도 유용하게 사용됨. 응답 시간 유지, CPU 이용률, 처리율 상승 동시에 많은 프로그램을 실행 시킬 수 있게 되고, 이에따라 위와 같은 장점이 나타남. SWAP에 필요한 입출력이 줄어들어 실행이 빨라짐(context switch, kernel 개입 최소화) 가상 메모리 구조 무한대의 vi.. 2022. 1. 10.
페이징과 스와핑 운영체제 관련 글 순서 - 프로세스란 - 쓰레드 - CPU 스케줄링 - 동기화 툴 - 동시성 제어 예제 - 데드락 - 주 메모리 - 페이징과 스와핑 - 가상 메모리와 디맨드 페이징 - 페이지 교체 알고리즘(FIFO, OPT, LRU), 쓰레싱, working set 페이징(Paging) 메모리를 쪼개서 사용하는 것 연속적 할당의 반대개념이다. 외부 단편화 발생을 방지해준다. 가장 기본적인 페이징 방법 실제 메모리를 고정된 크기(frame)로 쪼개서 사용 == 메모리를 나눈 조각 똑같은 크기로 논리 메모리도 쪼갬(page) == 프로세스를 나눈 조각 논리 메모리는 논리 주소인 페이지 넘버와 페이지 오프셋을 가지고 있다. 이 논리 주소는 프레임 테이블을 통해 물리 주소에 매칭됨. 논리주소는 몇번 페이지에 몇.. 2022. 1. 7.
주 메모리(Main Memory) 운영체제 관련 글 순서 - 프로세스란 - 쓰레드 - CPU 스케줄링 - 동기화 툴 - 동시성 제어 예제 - 데드락 - 주 메모리 - 페이징과 스와핑 - 가상 메모리와 디맨드 페이징 - 페이지 교체 알고리즘(FIFO, OPT, LRU), 쓰레싱, working set 프로세스는 실행중인 프로그램을 뜻함. 실행중인 프로그램은 메모리에 이 프로그램이 로드되어있는 것을 뜻함. 메모리란 기억장치. 각각의 주소를 가진 대용량의 바이트 배열. CPU는 메모리에서 불러와서 연산작업들을 하는데, 다음과 같다. PC가 가리키는 연산을 fecth 그 연산을 decode(해석)하여 관련된 다른 피연산자를 메모리에서 fetch 할수도 있다. 가져온 피연산자에 대한 연산이 실행되면, 결과는 다시 메모리에 저장(store)된다. .. 2022. 1. 7.
데드락(Deadlock) 운영체제 관련 글 순서 - 프로세스란 - 쓰레드 - CPU 스케줄링 - 동기화 툴 - 동시성 제어 예제 - 데드락 - 주 메모리 - 페이징과 스와핑 - 가상 메모리와 디맨드 페이징 - 페이지 교체 알고리즘(FIFO, OPT, LRU), 쓰레싱, working set 데드락이란? : 두개 이상의 프로세스(쓰레드)가 서로 상대방의 작업이 끝나기만을 기다리고 있어서 무한 대기에 빠지는 상황. 데드락 예시코드 데드락이 발생하는 조건 상호배제(Mutual Exclusion) : 자원은 한 프로세스만이 사용 가능 점유대기(Hold and Wait) : 한 개이상의 자원을 점유하고 있으면서 다른 프로세스가 점유하고 있는 자원을 점유하기 위해 대기 비선점(No preemption) : 다른 프로세스가 자원의 사용을 끝.. 2022. 1. 5.
동시성 제어 예제(Bounded-Buffer, Readers-Writers 운영체제 관련 글 순서 - 프로세스란 - 쓰레드 - CPU 스케줄링 - 동기화 툴 - 동시성 제어 예제 - 데드락 - 주 메모리 - 페이징과 스와핑 - 가상 메모리와 디맨드 페이징 - 페이지 교체 알고리즘(FIFO, OPT, LRU), 쓰레싱, working set Bounded-Buffer Producer-Consumer 문제라고도 부름 n개의 버퍼가 있을때, 각각의 버퍼는 한개의 아이템을 가질 수 있음. 프로듀서는 버퍼에 채우는 역할, 컨슈머는 버퍼의 내용을 읽는게 역할. 데이터구조 int n; semaphore mutex = 1; // 동시 접근 막기 세마포어 semaphore empty = n; // 버퍼의 크기 semaphore full = 0; Producer&Consumer 코드 프로듀서 작.. 2022. 1. 5.
동기화 툴(프로세스 동기화) 운영체제 관련 글 순서 - 프로세스란 - 쓰레드 - CPU 스케줄링 - 동기화 툴 - 동시성 제어 예제 - 데드락 - 주 메모리 - 페이징과 스와핑 - 가상 메모리와 디맨드 페이징 - 페이지 교체 알고리즘(FIFO, OPT, LRU), 쓰레싱, working set Cooperating processes(협력 프로세스) 서로 다른 프로세스가 데이터를 공유하는 것. (≠그렇지 않고 서로에게 영향이 없을 경우 independent) 협력 프로세스는 데이터를 주고 받기 위해 IPC를 요구한다. (IPC[Inter-Process Communication] : 프로세스간 통신 ) 이런 프로세스들간의 통신이 일어나다보면 문제가 생길 수가 있음! 경쟁상태(Race Condition) : 공유 자원에 대해서 서로 다른.. 2022. 1. 5.
CPU 스케줄링 운영체제 관련 글 순서 - 프로세스란 - 쓰레드 - CPU 스케줄링 - 동기화 툴 - 동시성 제어 예제 - 데드락 - 주 메모리 - 페이징과 스와핑 - 가상 메모리와 디맨드 페이징 - 페이지 교체 알고리즘(FIFO, OPT, LRU), 쓰레싱, working set CPU 스케줄링이란 멀티프로그래밍에서 cpu를 잘 사용하기위해 하는것. CPU는 동시에 하나의 프로세스만 실행 가능한데, 한순간에 어떤 프로세스가 사용할지 결정해주는 것. 프로세스는 CPU burst와 I/O burst를 반복하여 바뀌며 프로그램을 실행한다. 오른쪽은 대체적으로 I/O burst 시간이 많은 프로그램이 더 많다는 그래프 그렇기 때문에 I/O burst동안은 다른 프로세스가 CPU를 점유할 수 있게하여 CPU 사용률을 끌어올려야.. 2022. 1. 5.