OS
-
운영체제 - 10(가상메모리)OS 2019. 7. 11. 15:29
페이지 대치 1. 페이지 대치의 필요성 : 하드디스크에 저장되어 있는 페이지를 메모리로 로딩하고 싶은데, 적재할 곳이 없을 때 다른 페이지를 빼내고 로딩해야 한다. 이를 페이지 대치라고 하며 프레임의 개수가 상대적으로 부족하기 때문에 일어나는 일이다. => 페이지 대치를 통해 메인 메모리에 있으면서 사용되지 않는 페이지를 없애고 새로운 페이지로 바꿀 수 있다 희생 프레임 : 페이지 대치에 의해 교체되는 페이지 => 효율적인 페이지 대치 알고리즘을 통해 희생프레임을 잘 찾는것이 중요하다 페이지 대치에 의해 희생된 프레임에 중요한 정보가 있을 수 있으므로 잘 선정해야함 2. 페이지 부재와 프레임 개수 프레임 수 증가 -> 페이지 부재수 감소 페이지 부재는 부정적인 요소이므로 프레임 개수를 늘려줘야한다 3. ..
-
운영체제 - 9(CPU스케줄링2, 쓰레드/다중 프로세서 스케줄링)OS 2019. 7. 4. 14:37
스케줄링 알고리즘 1. Multilevel Queue Scheduling (Queue를 여러개 두어 우선순위 스케줄링) - 서로 다른 유형별로 구분하여 분리처리 - 유형에 맞는 스케줄링 알고리즘을 각각 따로 적용 Ex) 대화형 프로세스 - 일괄처리/Round-robin(실시간으로 즉각즉각 스케줄링이 되어야 하기때문에) * 문제점 - 프로세스를 초기에 어떠한 Queue에 넣으면 계속 거기 있어야 하고 우선순위가 높은/낮은 Queue로 옮겨줄 수 없어 신축성 있는 스케줄링이 어렵다. - 우선순위가 밀려 기아 상태로 들어설 가능성이 있다. 2. HRN(Highest Response-Rate Next) 스케줄링 - 비선점 스케줄링 기법으로 가변적 우선순위를 두어 때에따라 우선순위가 변하게함 많이 기다렸다면 Or..
-
운영체제 - 7(교착상태)OS 2019. 7. 2. 14:48
교착상태 - Deadlock : 두개 이상의 프로세스가 필요한 자원을 기다리면서 무한정 중지된 상태 1. 발생원인 : 제한된 자원에서 프로세스의 이용률을 높이고, 시스템 효율성을 높이려는 과정에서 부작용으로 발생 * 프로세스의 자원이용 순서 1) 요청 : 자원요청 -> 자원할당 2) 사용 : 할당된 자원 사용 3) 해제 : 할당자원을 반납 후 종료 2. 필요충분조건 : 상호배제 + 점유와 대기 + 비선점 + 순환 대기 => Deadlock이 왜 발생하고, 어디에서 발생하는지 알아야 할 필요가 있다 3. 자원할당 그래프 : 프로세스 집합과 자원들로 구성된 간선 집합을 통해 자원과 프로세스 간 관계를 그래프로 나타낸 것 - 이 그래프에서 사이클이 생기면 Deadlock이 발생한 것 P1이 R2를 요청 -> ..
-
운영체제 - 6(모니터, IPC)OS 2019. 6. 28. 14:05
상호배제 / 동기화 1. 모니터 등장 이유 - 세마포어 변수에 영향을 미치는 P, V 연산이 프로그램 전체에 널리 퍼져 세마포어에 미치는 영향 파악이 어렵다 -> 프로그램 작성 어려움 -> 상호배제 및 프로세스 사이의 조정을 위한 유연성, 강력한 도구가 필요 2. 모니터 프로세스의 동기화 기법 - 모니터 : 조직적인 구성체를 두어 공유자원, 임계영역을 체계적으로 관리 - 일종의 클래스 개념으로 묶어버린 소프트웨어 모듈 객체 - 모니터 경계에서 한번에 한 프로세스만 진입하도록 제어되므로 상호 배제 원칙을 지킬 수 있음 IPC(Inter Process Communication) - 프로세스 간에 서로 데이터를 주고받기 위한 목적의 커뮤니케이션 1. Shared Memory : 공유 메모리 - 프로세스 A와 ..
-
운영체제 - 5(++ 병행프로세스/상호배제 해결법)OS 2019. 6. 27. 14:35
비동기 병행프로세스(상호배제) 1. 임계 영역(Critical Section) - 프로세스가 공뮤메모리를 사용하는 코드를 임계영역이라 한다 - 임계영역의 사용을 통제해주어야 한다 2. 상호 배제 - 한 프로세스가 임계영역에 들어가면 다른 프로세스는 그 임계영역에 못들어가도록 운영체제가 통제한다. - 이러한 임계영역의 문제를 해결하기 위해 상호배제가 필요하다. * 임계영역을 제외한 영역을 잔류영역이라고 한다 상호배제 해결법 1. Algorithm 1 - 교대로 임계영역에 들어갈 수 있다. While문에 의하여 Process 2가 실행중이라면, 계속 작업을 반복하고(do ;) 그렇지 않다면, p1이 임계영역에 진입하는 알고리즘 프로세스 2 역시 마찬가가지로, P1이 실행중이라면 그 작업을 반복하고 그렇지 않..
-
운영체제 - 4(쓰레드, 병행프로세스)OS 2019. 6. 26. 14:56
쓰레드 - 프로세서의 이용 기본 단위(Process > Threads) - 프로그램 명령을 실행하는 프로세스 내의 개체 - 명령어의 제어 흐름 1. 쓰레드의 구조 - 1개 Process에는 1개 이상의 Thread 존재 - 1개의 Process 내 Thread가 모두 종료되면 Process도 제거됨 2. 쓰레드의 병렬수행 - 프로세스 하나에 포함된 쓰레드들은 공동 목적 달성을 위해 병렬 수행 - 프로세서에서 프로그램의 다른 부분 동시 실행 3. 단일 쓰레드와 다중 쓰레드 1) 단일 쓰레드 프로세스 : 쓰레드 1개 2) 다중 쓰레드 프로세스 : 쓰레드 n개 -> 병렬수행이 잘 이루어진다면 성능 향상 4. 사용자 레벨 쓰레드 / 커널 레벨 쓰레드 1) User level thread : Kernel의 개입 ..
-
운영체제 - 3 (프로세스)OS 2019. 6. 26. 14:11
프로세스 개념 - 프로세스 : 현재 실행중인 프로그램 (메모리에 로딩된 형태) (리눅스의 경우 부팅시 약 80~120 / 윈도우의 경우 40개 정도 프로세스 실행됨) 1. 프로세스 주소공간 주소 - Heap : 필요에 의해 동적으로 메모리를 할당할 때 사용 - Data : 전역 변수와 static 변수가 할당되는 지역 - Stack : 프로그램이 자동으로 사용하는 임시 메모리 영역 - 잠시 사용되었다가 없어지는 메모리 저장 * PCB : 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳 2. 프로세스 종류 1) 시스템 프로세스 : 시스템 운영에 필요한 작업을 실시하는 프로세스(부팅 시 자동 실행되는 프로세스들) 2) 사용자 프로세스 : 사용자가 실행하는 프로세스 3) 병행 프로세스 : 동시에 실행..