computer science/operating system(6)
-
페이지 교체 알고리즘(LRU, LFU, MFU)::운영체제
프로세스가 특정 페이지를 요구할 때 해당 페이지를 물리 메모리에 load합니다. 메모리에 필요한 페이지가 있을 경우 바로 사용할 수 있지만, 페이지가 없을 경우(page-fault) 하드디스크에서 페이지를 찾아야 하기 때문에 많은 시간이 소비됩니다. 페이지를 교체하는 가장 단순한 방법으로 FIFO(First In First Out) 알고리즘이 있습니다. 메모리에 load된 페이지 중 가장 오래된 페이지를 교체합니다. 페이지가 올라온 순서를 큐(Queue)에 저장해 순서대로 교체합니다. 하지만, 활발하게 사용하고 있는 페이지를 계속해서 교체될 경우, 페이지 부재율이 높아 성능이 낮습니다. 따라서 한정된 메모리에서 교체할 희생 프레임을 찾고, 적절한 페이지로 교체해 성능을 높일 수 있는 페이지 교체 알고리즘..
2020.07.07 -
Race Condition::운영체제
Race Condition이란? 둘 이상의 입력 또는 조작의 타이밍이나 순서 등이 결괏값에 영향을 줄 수 있는 상태입니다. 입력 변화의 타이밍이나 순서가 예상과 다르게 작동하면 정상적인 결과가 나오지 않게 될 위험(경쟁 위험)이 있습니다. ex) 두 개 이상의 스레드가 동기화 메커니즘 없이 공유된 자원에 접근하려는 상황 하나의 자원을 놓고 서로 사용하려 경쟁하는 상황
2020.07.03 -
슬라이딩 윈도우 프로토콜::운영체제
슬라이딩 윈도우 프로토콜이란? 두 호스트 간 데이터 전송을 위한 일반적인 통신 프로토콜로 오류 제어와 흐름 제어를 지원하는 방식입니다. - 송신 호스트는 정보 프레임(전송 데이터, 오류 검출 코드 등)을 순서 번호에 따라 순차적으로 전송합니다. - 정보 프레임을 수신한 수신 호스트가 응답하는 순서 번호는 정상적으로 수신한 번호가 아닌 다음 수신하기를 기대하는 회신 번호를 사용합니다. - 송신 호스트는 송신한 정보 프레임을 자신의 내부 버퍼인 송신 윈도우를 유지해야 합니다. 송신 호스트가 관리하는 송신 윈도우는 전송되었지만, 긍정 응답(ACK)이 회신되지 않은 프레임을 보관합니다. - 수신 호스트는 수신한 정보 프레임을 보관하기 위한 내부 버퍼인 수신 윈도우를 유지해야 합니다. 수신 호스트가 관리하는 수신..
2020.06.30 -
프로세스(Process)와 스레드(Thread)::운영체제
1. 프로세스(Process) 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 의미합니다. 메모리에 올라와 실행되고 있는 프로그램의 인스턴스로 독립적인 개체입니다. 운영체제로부터 시스템 자원을 할당받는 작업의 단위입니다. 할당받는 시스템 자원 1) CPU 시간 2) 운영되기 위해 필요한 주소 공간 3) Code, Data, Stack, Heap 구조로 되어 있는 독립된 메모리 영역 특징 - 각각 독립된 메모리 영역을 할당받습니다. - 기본적으로 프로세스 당 최소 1개의 스레드(메인 스레드)를 가지고 있습니다. - 각 프로세스는 별도의 주소 공간에서 실행되며 한 프로세스는 다른 프로세스의 메모리 영역(변수, 자료구조 등)에 접근할 수 없습니다. - 한 프로세스가 다른 프로세스의 자원에 접근하려면 프로..
2020.06.30 -
교착상태(Deadlock)::운영체제
교착상태(Deadlock)란? 첫 번째 스레드는 두 번째 스레드가 들고 있는 객체의 lock이 풀리기를 기다리고 있고, 두 번째 스레드 역시 첫 번째 스레드가 들고 있는 객체의 lock이 풀리기를 기다리는 상황을 말합니다. 두 스레드가 서로 lock이 풀리기를 기다리고 있기 때문에 무한 대기 상태에 빠지게 됩니다. 이러한 상황을 스레드가 교착상태에 빠졌다고 합니다. 교착상태의 4가지 조건 1) 상호 배제(Mutual Exclusion, Mutex) 공유 자원에 대한 접근 권한이 제한되기 때문에 한 번에 한 프로세스만 공유 자원을 사용할 수 있습니다. 2) 점유 대기(Hold and wait) 공유 자원에 대한 접근 권한을 갖고 있는 프로세스가 그 접근 권한을 양보하지 않은 상태에서 다른 자원에 대한 접근..
2020.06.26 -
CPU 프로세스 스케줄링::운영체제
1. 선점 스케줄링 CPU가 어떤 프로세스에 의해 점유 중일 때, 우선순위가 높은 프로세스가 CPU를 차지할 수 있습니다. 우선 순위가 높은 프로세스를 빠르게 처리해야 할 경우에 유용하지만, 오버헤드가 발생하여 처리시간을 예측하기 힘듭니다. SRT(Shortest Remaining Time) 스케줄링 짧은 시간 순서대로 프로세스를 수행합니다. 남은 처리 시간이 더 짧은 프로세스가 Ready 큐에 들어오면 그 프로세스가 바로 선점됩니다. 라운드 로빈(Round Robin) 스케줄링 각 프로세스는 같은 크기의 CPU 시간을 할당받고 선입선출(FIFO)에 의해 선점됩니다. 할당시간이 너무 크면 선입선출과 다를 바 없어지고, 너무 작으면 오버헤드가 너무 커집니다. 다단계 큐(Multi-level Queue) 스..
2020.06.25