본문 바로가기

University Classes/Operating System

페이지 교체 1. 페이지 교체는 요구 페이징의 기본 ~ : 페이지 교체를 통해 논리적 메모리와 물리적 메모리간의 분리가 완성되며, 이 기법을 통해 매우 작은 물리 메모리로도 프로그래머에게 광대한 가상 메모리를 제공할 수 있습니다. 2. 기본적인 페이지 교체 : 프로그래밍의 정도를 올리게 되면 CPU이용률과 처리율을 얻을 수 있지만, 메모리 과할당 (over-allocating)이 발생하게 됩니다. 페이지 교체는 이를 해결하기 위한 기법입니다. 3. 페이지 교체 순서 ㄱ. 디스크에서 필요한 페이지 위치를 파악합니다. ㄴ. 빈 페이지 프레임을 찾습니다. 빈 페이지 프레임이 없는 경우, 사용할 페이지 (victim page)를 선택하기 위해 페이지 교체 알고리즘을 사용합니다. ㄷ. 뺏어온 프레임에 새 페이지를 읽어오고, .. 더보기
가상메모리란? (virtual memory) 지금까지의 메모리 관리 기법 방식은 프로세스 전체가 실행되기 전에 메모리로 올라와야 한다는 것을 전제로 하고 있다. 프로세스 전체가 메모리 내에 올라오지 않더라도 실행이 가능하도록 하는 기법을 가상메모리라 한다. 가상 메모리는 물리 메모리로부터 사용자 관점의 논리 메모리를 분리시켜 주 메모리를 균일한 크기의 저장 공간으로 구성된 엄청나게 큰 배열로 추상화 시켜 준다. 따라서 작은 메모리를 가지고도 큰 가상 주소 공간을 제공한다. ⊙ 장 점 - 사용자 프로그램이 물리 메모리보다 커져도 된다는 점이다. 즉, 메모리 크기의 제약으로부터 자유로워진다. - 각 사용자 프로그램이 더 작은 메모리를 차지하므로 더 많은 프로그램을 동시에 수행할 수 있다. 이에 따라 응답시간은 늘어나지 않으면서 CPU 이용률과 처리율이.. 더보기
페이지 교체 알고리즘 많은 페이지 교체 알고리즘이 존재하는데 일반적으로는 페이지 부재율 (Page-Fault rate)이 가장 낮은걸 선정합니다. 아래와 같이 다양한 페이지 교체 알고리즘이 있습니다. FIFO 페이지 교체 (First-in First-out Page Replacement) 최적 페이지 교체 (Optimal Page Replacement, OPT) LRU 페이지 교체 (Least-lecently-used Page Algorithm) LRU 근사 페이지 교체 (Least-recently-used Approximation Page Algorithm) 계수-기반 페이지 교체 (Counting-Based Page Algorithm) 페이지 버퍼링 알고리즘 (Page-Buffering Algorithm) 각 알고리즘의 .. 더보기
쓰레싱 (Thrashing) 이란? 1. 쓰레싱 이란? ㄱ. 페이지 부재율이 높은 것을 의미 ㄴ. 스레싱은 심각한 성능 저하를 초래 ㄷ. 충분한 프레임을 할당 받지 못한 프로세스에 대해 생각해보자 ☞ 활발하게 사용되는 페이지 집합을 지원해 줄 만큼 프레임이 충분히 할당 받지 못한 프로세스는 페이지 부재가 발생하게 된다. 이때 페이지 교체가 필요하지만 이미 활발하게 사용되는 페이지들만으로 이루어져 있으므로 어떤 페이지가 교체되든지 바로 다시 페이지 교체가 필요 하게 될 것이다. 결과적으로 바로 바로 반복해서 페이지 부재가 발생하며 교체된 페이지는 다시 얼마 지나지 않아 읽어올 필요가 생긴다. 이러한 과도한 페이징 작업을 쓰레싱 이라 한다. 2. 쓰레싱의 원인 ㄱ. 다중 프로그래밍 정도가 높아짐에 따라 CPU 이용률이 높아진다. CPU이용률이.. 더보기
캐쉬(cache) 캐쉬(cache)란? 프로그램이 수행될 때 나타나는 지역성을 이용하여 메모리나 디스크에서 사용되었던 내용을 특별히 빠르게 접근할 수 있는 곳에 보관하고 관리함으로써 이 내용을 다시 필요로 할 때 보다 빠르게 참조하도록 하는 제어장치 l 지역성 - 프로그램의 실행 패턴이 참조되었던 근처의 메모리를 다시 참조하는 특성 하드웨어적인 캐쉬à CPU와 메인 메모리 사이에 빠른 캐시 메모리가 있는 경우속도가 빠른 CPU가 속도가 느린 메인 메모리의 데이터에 접근 시 중간에 빠른 캐시 메모리를 두어 요청한 데이터를 보다 빠르게 돌려줄 수 있도록 하는 것. 캐시의 성능 i. 작은 용량의 캐시 메모리에 CPU가 이후에 참조할 쓸모 있는 정보가 얼마나 있느냐에 의하여 좌우된다. ii. 캐시히트(Cache Hit) : CP.. 더보기
캐시 교체 알고리즘, 캐시 쓰기 정책 캐시 교체 알고리즘, 캐시 쓰기 정책 ① 캐시 교체 알고리즘캐시에 빈 공간이 없는 상태에서 새로운 내용이 메인 메모리로부터 캐시 메모리에 복사되어질 때에는 기존의 내용을 캐시로부터 내려야 할 것이고, 이때 어떤 블록의 내용을 내릴 것인지를 결정하는 것이 캐시 교체 알고리즘이다. 직접 매핑 방식의 경우 캐시에 저장되어야 할 위치가 정해져 있으므로 이러한 알고리즘은 필요하지 않다.캐시에서의 교체 알고리즘은 주로 LRU (Least Recently Used) 방식을 많이 사용하며, 이 방식의 구현을 위하여 각각의 라인에 추가적인 비트를 두고 각 라인에 대한 데이터 참조 시 발생하는 시점을 기록함으로써 이 방식을 실현하고 있다. ② 캐시 쓰기 정책 프로세서에서 메모리에 대한 쓰기 작업을 요청할 경우에는 어떻게 .. 더보기
프로세스 내 캐쉬 관리 캐시 메모리는 실제 메인 메모리에 비해 그 크기가 매우 작습니다~~ 또한 메인 메모리와 동일한 주소체계를 가질 수 없기 때문에 메인 메모리와는 다른 형태의 주소 매핑 방식을 사용합니다. 매핑 방식은 아래와 같습니다. 직접 매핑 (direct mapping) 어소시에이티브 매핑 (Associative Mapping) 셋 어소시에이티브 매핑 (Set Associative Mapping) 각 매핑 방식 자세히 보기 직접 매핑 (direct mapping) 직접 매핑 방식은 ... 메인 메모리를 일정 크기 블록으로 나누고, 각 블록을 캐시의 정해진 위치에 매핑하는 방식입니다. 전체 메인 메모리에 대해 캐시 사이즈 단위로 나누고, 나뉜 각 블록들에 대해 태그 값을 매깁니다. 캐시 사이즈로 나뉘어진 블록은 다시 캐.. 더보기
특권레벨 ( pribilege Level) 악성코드나, 운영체제의 중요한 부분을 망가뜨리는 것과 같이 시스템에 악영향을 줄 수 있는 상황을 위해 시스템을 보호하는 것이 중요합니다. 인텔은 시스템 보호를 위해 많은 고민끝에, 가장 효과적인 방법은 마이크로프로세서 내의 MMU에서의 보호 메커니즘을 생각하였습니다. 이 방법은 어떠한 프로그램이든 메모리에 있는 코드 내용에 의해 실행이 되고 이러한 메모리에 대해 어떠한 명령어가 참조하고자 할 때, 그 명령을 실행하는 코드 메모리와 접근하는 메모리의 권한을 체크하여 프로세서 차원에서의 보호가 가능하게 하는 것으로 멀티링 형태로 디자인하였습니다. 즉, 운영체제 그룹은 신뢰성이 높은 루틴과 시스템 데이터가 속하므로 높은 특권레벨을 부여하고, 애플리케이션 그룹은 운영체제만큼 신뢰성이 높지 못한 프로그램이 속하므.. 더보기