OperatingSystem(41)
-
[운영체제][저장장치관리] 저장장치와 입출력(Storage & Input/Output) #1 대용량 저장장치 구조(Mass-Storage Structure)
1. HDD(Hard Disk Drive)의 구조 다음 그림은 하드디스크의 구조를 나타낸 그림입니다. Spindle : 시스템 부팅 후에 Disk의 내용을 읽고 쓰기 위해서 반드시 Spindle이라는 회전축으로 디스크를 회전시켜야합니다. Platter : 데이터들이 집합되어 있는 원형 모양의 디스크입니다. 각 디스크들은 여러개의 트랙으로 이루어져 있습니다. 이때 Track의 최소 단위는 Sector로써, Sector는 각각의 데이터들을 담고 있습니다. Arm : Arm은 직접 데이터를 읽어들이는 부분으로, Arm의 끝에 read/write head가 위치하여 실질적으로 데이터를 읽어들입니다. Cylinder : 각 디스크에서 동일한 거리에 있는 3개의 Track들을 연결해보면 원통 모형처럼 생겼기 때문에..
2022.07.26 -
[운영체제][메모리관리] Virtual Memory #2 페이지 교체 알고리즘
1. 페이지 교체 페이지 교체가 필요한 상황은 보조기억장치에 있는 페이지를 메모리에 적재하고잘 할때 비어있는 프레임이 없을 때 발생합니다. 예를 들어 물리적인 메모리는 40개의 프레임을 가지고 있고 6개의 프로세스들은 각각 10페이지의 크기를 가지고 있습니다. 하지만 각각의 프로세스들은 실제로 수행시에는 5개의 페이지만을 사용합니다. 이렇게 되면 물리적인 메모리에는 30개의 프레임을 프로세스들이 사용하고 10개의 프리 프레임이 남아있을 수 있습니다. 그러나 모든 프로세스들이 급하게 모두 10개의 페이지를 원하게 되면 20개의 프리 프레임이 필요하게 되고 페이지를 교체해야하는 필요성이 발생합니다. 다음 그림은 2개의 프로세스가 각각 4개의 페이지를 가지고 프로세스를 실행시키는 도중에 물리적인 메모리 공간이..
2022.07.21 -
[운영체제][메모리관리] Virtual Memory #1 가상 메모리와 디맨드 페이징
1. 가상 메모리의 배경 가상 메모리(Virtual Memory) 물리적인 메모리 크기보다 더 큰 크기의 프로그램을 실행시키기 위한 기술 가상 메모리 기술은 파일 공유와 라이브러리, 프로세스 생성과 같은 효율적인 메커니즘을 제공합니다. 다음 그림은 물리적인 메모리 크기보다 큰 가상메모리를 보여줍니다. 가상 메모리에 올라간 페이지들을 메모리 맵을 통해서 물리적인 메모리 공간에 매핑시킵니다. 실제 물리적인 메모리에 올라간 페이지들을 제외한 나머지 페이지들은 보조기억장치인 Backing Store에 저장됩니다. 가상 주소 공간(Virtual Address Space) 가상 주소 공간은 프로세스가 메모리에 어떻게 저장되는 방법에 대한 논리적(또는 가상의) 뷰입니다. 논리적 주소는 0부터 시작하고 이 가상 주소 ..
2022.07.20 -
[운영체제][메모리관리] Main Memory #2 페이징과 스와핑
1. 페이징(Paging) 페이징의 필요성 프로세스를 메모리에 올릴 때 가장 좋은 시나리오는 메모리에서 연속적인 위치에 그대로 올라가는 것입니다. 하지만 프로세스의 크기가 커지면 커질수록 연속적인 위치에 놓지 못하게 됩니다. 이렇게 되면 메모리 위에서 프로세스는 쪼개지는 외부 단편화 현상이 발생합니다. 페이징이란 무엇인가? 프로세스의 물리적 주소 공간을 비연속적으로 허용하는 메모리 관리 체계입니다. 연속적인 메모리 할당의 2가지 문제를 극복합니다. 외부 단편화(external fragmentation) 회피합니다. 압축과 관련된 요구를 회피합니다. 운영체제와 하드웨어 사이에서 협력하여 구현함 페이징의 기본적인 방법 물리적인 메모리를 고정된 크기의 블록(frames)으로 분할합니다. 논리적인 메모리를 같은..
2022.07.19 -
[운영체제][메모리관리] Main Memory #1 주 메모리의 관리
1. 주 메모리 관리의 배경 프로세스와 메모리와의 관계 프로세스는 실행중인 프로그램이라는 의미로 메인 메모리에 위해서 수행하는 프로그램이라는 의미입니다. 메모리는 각각의 주소에 바이트 배열로 구성되어 있습니다. CPU는 프로그램 카운터를 사용하여 메모리로부터 명령어를 가져옵니다. 그리고 프로세스 안에 명령어들도 메모리에 불러오거나 저장할 수 있습니다. 메모리 공간 각각의 프로세스는 별개의 메모리 공간을 갖는 것을 보장해야합니다. 메모리 공간에는 프로세스들의 시작주소와 종료주소를 정의하기 위해서 베이스 레지스터(base register)와 한계 레지스터(limit register)를 제공하고 있습니다. 베이스 레지스터(base register) : 메모리에 프로그램이 할당 될 때 프로그램의 시작 regis..
2022.07.15 -
[운영체제][프로세스관리] Deadlocks #3 교착상태 탐색(Detection) 후 회복(Recovery)
1. 교착상태 탐색(DeadLock Dection) 만약 시스템이 교착상태 방지(Prevent)또는 회피(Avoid)를 하지 않는다면 교착상태가 발생할 것입니다. 교착상태 탐색 환경에서의 시스템은 교착상태 발생을 허용해줍니다. 대신 교착상태가 발생했는지 안했는지를 판단하기 위한 시스템의 상태를 설명하는 알고리즘을 제공합니다. (교착상태 탐색 알고리즘) 시스템은 교착상태가 발생하면 회복하는 알고리즘을 제공합니다. 각각의 자원 유형의 인스턴스가 단일 인스턴스인 경우 자원-할당 그래프의 변형인 대기 그래프(wait-for graph)를 유지합니다. 주기적으로 대기 그래프안에 원형 대기가 있는지 탐색하는 알고리즘을 수행합니다. 대기 그래프의 특징은 자원-할당 그래프에서 자원을 뺀 형태입니다. 다음은 같은 자원 ..
2022.07.14