운영체제(OS)

    [운영체제] 스레싱

    [운영체제] 스레싱

    프로세스에 충분한 프레임이 없는 경우 페이지 폴트가 발생한다. 과도한 페이지 폴트로 인해 CPU이용률이 감소하는 현상을 스레싱이라고 한다. [스레싱의 원인] 스레싱이 발생하는 이유는 프로세스가 자신이 필요한 만큼의 프레임을 찾지 못했기 때문이다. Locality 사이즈 > 메모리 사이즈일 때 스레싱이 발생 Locality model : 메모리의 일부 지역만 집중적으로 접근 1 ) 프로세스의 지역성은 움직임 2 ) 지역성은 겹칠수도 있음. [작업 직합 모델 (Working-Set] 작업 집합(s) = 고정된 페이지 참조 수 작업 집합 모델 : s만큼 접근할 때 접근한 메모리 페이지 다음 예시로 이해하자. ( S = 10이라고 가정한다) 그렇다면 작업 집합을 어떻게 파악할 수 있을까? -> 일정 간격 타이머..

    [운영체제] 프레임 할당

    여러 개의 프로세스들에 제한된 가용 메모리를 어떻게 할당 해야 할까? 이번에는 프레임 할당 알고리즘에 대해 알아보자. [할당 알고리즘] 1 ) 균등 할당 : 똑같은 크기 만큼 할당 받는 방법 2 ) 비례 할당 : 프로세스 크기에 따라 할당 받는 방법 EX ) s1 = 10, s2 = 127이면 s1에는 10 / 137만큼, s2에는 127 / 137만큼 할당함 3 ) 우선순위 할당 : 우선순위를 고려하여 할당 하는 방법 -> 높은 우선순위의 프레임이 낮은 우선순위 프레임 뺏을 수 있음 4 ) Global vs Local Allocation - Global replacement : 전체 프로세스를 고려하여 희생양을 정하는 방법 -> 실행 시간의 변화가 큼 - Local replacement : 프레임 중에..

    [운영체제] 페이징 교체

    [운영체제] 페이징 교체

    메인 메모리에 빈 프레임이 없을 때 어떻게 해야할까? 1 ) 페이지 폴트 발생시킨 알고리즘 종료 2 ) swap out 3 ) 교체 [페이지 교체 과정] 1 ) 보조저장장치에서 필요한 페이지의 위치를 알아낸다. 2 ) 빈 페이지 프레임을 찾는다. 비어 있는 프레임이 있다면 사용한다. 비어 있는 프레임이 없다면 희생 프레임을 선정한다. (페이지 교체 알고리즘 이용) 희생될 페이지를 보조저장장치에 기록하고, 관련 테이블을 수정한다. 3 ) 빼앗은 프레임에 새 페이지를 읽어오고 테이블을 수정한다. 4 ) 페이지 폴트가 발생한 지점에서부터 프로세스를 계속한다. [페이지 교체 장점] 1 ) 메모리 과할당 방지 2) 페이지 교체가 논리 메모리와 물리 메모리 분리를 완성시킴. [페이지와 프레임 교체 알고리즘] 페이지..

    [운영체제] 요구 페이징

    [운영체제] 요구 페이징

    프로그램 실행 시 프로그램의 전부를 물리 메모리에 적재하는 방법은 메모리를 효율적으로 사용하는 방법이 될 수 없다. -> 초기에는 프로그램 전체가 메모리에 있을 필요가 없기 때문이다. 메모리를 효율적으로 사용하는 방법으로 필요한 페이지만 적재하는 방법이 있다. -> 요구 페이징이라고 한다. 요구 페이징은 가상 메모리 시스템을 사용하여 필요한 프로그램의 일부만 적재함으로써 메모리를 더 효율적으로 사용할 수 있도록 한다. [요구 페이징] 1 ) 요구 페이징은 주소 공간을 페이지 단위로 나눈 뒤 필요할 때 메모리로 가져온다. -> 페이지가 필요할 때만 메모리로 가져오는 것을 Lazy swapper라고 한다. (pager가 담당) 2 ) 페이지가필요하면 페이지 테이블을 참조 -> Valid-Invalid Bit..

    [운영체제] 가상 메모리

    [운영체제] 가상 메모리

    프로그램 실행을 위해서는 메인 메모리에 적재해야 한다. 하지만 모든 프로그램을 메인 메모리에 올리는 것은 비효율적이다. → 프로그램 일부만 메인 메모리에 실행 하는 방법이 필요하다. 프로그램 일부만 메모리에 올려놓고 실행하면 얻을 수 있는 장점은 무엇일까? 1 ) 프로그램이 물리 메모리 크기 제약에 벗어남으로써, 사용자들은 매우 큰 가상 주소 공간을 가정하고 프로그램을 만들 수 있다. 2 ) 더 많은 프로그램을 동시에 수행할 수 있다. (더 작은 메모리를 차지하기 때문에) 3 ) I/O회수가 줄어들기 때문에 프로그램이 빨리 실행된다. [가상 메모리] 가상의 메모리 주소가 각 프로그램의 실제 메모리 주소로 연결되도록 하는 방식으로 실제의 물리 메모리와 논리 메모리가 분리되어있다. → 작은 메모리를 가지고도..