반응형

[Computer Science]/[운영체제(OS)] 48

[운영체제(OS)] 12-1) 입출력 하드웨어

컴퓨터에서 작동되는 장치는 저장장치, 전송 장치, 사용자 인터페이스 장치 등으로 나뉩니다. 포트 : 컴퓨터 시스템과 접속하는 연결점. 버스 : 하나 이상의 장치들이 사용하는 공동 선. 회선의 집합으로, 어떻게 메시지를 주고받을 지 정한 프로토콜까지 포함. 데이지 체인(daisy chain) : 연속적으로 연결되어 있는 하드웨어 장치. 하나의 버스처럼 동작하며, A가 B에 연결되고, B가 C, C가 컴퓨터의 포트까지 연결되어있는 구조. 컨트롤러 : 포트, 버스, 장치를 작동할 수 있는 전자장치 집합체. 위 이미지에서는 확장 버스(expansion bus)가 상대적으로 느린 장치(키보드, 직렬, USB 포트)들을 연결하고 있고, PCI 버스가 프로세스-메모리 서브 시스템을 확장 버스에 연결하고 있습니다. P..

[운영체제(OS)] 11-4) 저장장치 연결, RAID

컴퓨터는 호스트에 연결하는 방식, 네트워크로 연결된 저장장치, 클라우드 저장장치. 이렇게 3가지 방법으로 보조저장장치에 접근합니다. 1. 호스트 연결 저장장치 : 로컬 I/O 포트를 통해 액세스되는 저장장치. 2. 네트워크 연결 저장장치(NAS) : LAN(Local Area Network), WAN(Wide-Area Network) 범위에서 접근 가능. 3. 클라우드 저장장치 : 원격 클라우드에 있는 장치를 연결. : Redundant Array of Inexpensive Disk. 중복 메모리를 사용하여 성능을 향상시키고, 그 중 하나가 오류를 일으켜도 데이터가 분실되지 않아 신뢰성을 높이는 구조. 값싼 디스크 여러 개를 붙여서 하나의 디스크처럼 보이게 하는 것입니다. 1) 중복으로 신뢰성 향상 미러..

[운영체제(OS)] 11-3) 저장 장치 관리, 스왑 공간 관리

: 메모리, 네트워킹 및 저장장치를 포함한 많은 컴퓨팅 영역에서 필수적입니다. 메모리 시스템은 패리티 비트를 사용해 특정 오류를 오랫동안 감지했습니다. * parity : 고정 길이 워드의 값을 계산, 저장, 비교하기 위해 나머지 연산을 수행하는 체크섬(중복 검사)의 한 형태입니다. 각 바이트에 1로 설정된 비트 수가 짝수이면 패리티 = 0, 홀수이면 패리티 = 1 입니다. 바이트의 비트 중 하나가 손상되어 패리티 값이 바뀔 경우의 모든 단일 비트 오류는 메모리 시스템이 감지합니다. 이중 비트 오류는 감지되지 않을 수 있는데, 순환 중복 검사(CRC)는 이러한 다중 비트 오류를 해시 함수를 사용하여 감지합니다. 오류 수정 코드(ECC)는 문제 감지와 보정을 함께 합니다. 복구 가능한 오류를 소프트 오류,..

[운영체제(OS)] 11-2) 디스크 스케줄링, NVM 스케줄링

: 디스크 스케줄링은 HDD와 같은 기계식 플래터 기반 저장장치에 적용되며, 디스크 헤드 이동량을 최소화하는 데 주로 중점을 둡니다. 프로세스가 입출력을 해야 할 때마다 운영체제에 시스템 콜을 합니다. 원하는 드라이브와 컨트롤러가 쉬고 있다면 요청을 즉시 시작되지만, 그렇지 않다면 해당 드라이브의 큐에 들어가 기다려야 합니다. 다중 프로그래밍 시스템에서는 많은 프로세스가 장치를 공유하기 때문에 큐에 여러 입출력 요청이 대기하고 있을 수 있습니다. 디스크 스케줄링의 목표는 다음과 같습니다. 하드 디스크 검색으로 낭비되는 시간 최소화 특정 프로세스의 입출력 요청 우선순위 할당 디스크 대역을 실행중인 각 프로세스에 할당 정해진 기한까지 요청을 처리 1. 선입 선처리(FCFS) 스케줄링 : 가장 간단한 형태의 ..

[운영체제(OS)] 11-1) 대용량 저장장치 구조

보조저장장치 : 하드 디스크 드라이브(HDD), 비휘발성 메모리(NVM) 장치에 의해 제공. 1. 하드 디스크 드라이브(HDD) : 디스크 암 : 읽기-쓰기 헤드가 붙어있고, 플래터 표면 위에서 움직임. 플래터 : 양쪽 표면이 자기 물질로 덮여 있어서 플래터에 자기적으로 기록하고 읽어옴. 플래터의 표면은 원형 트랙으로 나뉘고, 트랙은 다시 섹터로 나뉘고, 각각의 트랙은 수백 개의 섹터를 포함할 수 있습니다. 동일한 암 위치에 있는 트랙의 집합은 하나의 실린더를 형성하고, 하나의 HDD에는 수천 개의 동심원 실린더가 존재할 수 있습니다. 섹터 : 가장 작은 전송 단위이며, 크기가 고정되어 있음. 디스크 드라이브 모터는 고속으로 회전하는데, 회전 속도는 전송 속도(드라이브와 컴퓨터 간의 데이터 흐름 속도)와..

[운영체제(OS)] 10-4) 커널 메모리의 할당

페이징의 대안은 메모리 압축입니다. 여러 프레임을 하나로 압축하여 시스템이 페이지 스와핑에 의존하지 않고 메모리 사용량을 줄일 수 있게 합니다. : 사용자 모드에서 수행중인 프로세스가 추가 메모리를 요구하면 커널이 관리하는 가용 페이지 프레임에서 페이지가 할당됩니다. 사용자 프로페스가 단 한 바이트만 필요로 한다면 프로세스가 한 페이지 프레임을 할당받기 때문에 내부 단편화가 발생합니다. 커널 메모리는 이럴 때 보통의 사용자 모드 프로세스에 할당해 주기 위한 페이지 리스트와는 별도의 메모리 풀에서 할당해줍니다. 이유 1. 커널에 있는 자료 구조들은 페이지 크기보다 작은 크기를 가지기도 하므로, 단편화에 의한 낭비를 최소화. 이유 2. 사용자 모드 프로세스에 할당되는 페이지들은 물리 메모리 상 연속적일 필요..

[운영체제(OS)] 10-3) Thrashing

프로세스에 page frame을 할당하는 방식은 프로세스마다 균일하게 할당하거나 특정 기준에 따라 할당하는 방법으로 나뉘는데, 기본적으로는 사용할 수 있는 frame의 총 양보다 적게, 최소한의 frame보다 많게 할당해야 합니다. * 균일하게 할당 : (frame 수 / 프로세스의 수) 만큼 프로세스마다 할당합니다. * 특정 기준으로 할당 : 프로세스, 우선순위에 따라 할당하며, 크기가 클수록 또는 우선순위가 높을수록 더 많은 frame을 할당합니다. Global Replacement : 대체될 때 다른 프로세스에 할당된 frame을 뺏어올 수 있습니다. 가장 흔하게 사용되는 방법입니다. 장점 : 프로세스별로 frame 할당량을 조절할 수 있습니다. 단점 : 자신의 page fault rate를 조절할..

[운영체제(OS)] 10-2) Page Replacement Algorithm

: 이전 포스팅(https://geukggom.tistory.com/276)에서 Demand paging할 때 어떤 frame의 victim page를 대체할지를 정해야하는데, 이를 위한 알고리즘입니다. * page reference string : 참조되는 일련의 page 번호입니다. 알고리즘의 성능 평가는 page reference string이 pauge fault를 얼마나 내는지를 조사하는 방식으로 이뤄집니다. 1. OPT(Optimal Algorithm) : 가장 먼 미래에 참조될 page를 대체하는 방법입니다. 항상 최적의 결과를 가지지만, 미래의 참조를 모두 알고 있어야 가능하기 때문에 실제로 사용할 수는 없고 다른 알고리즘의 성능에 대한 upper bound를 제공하는 역할을 합니다. 2...

[운영체제(OS)] 10-1) Demand Paging

: 기존에는 프로세스 전체를 메모리에 로드했는데, 프로세스가 코드의 일부분에서만 시간을 사용하여 차지한 메모리보다 더 작은 부분을 사용했기 때문에 비효율적이었고 메모리 용량보다 더 큰 프로그램은 실행시킬 수 없었습니다. 가상 메모리는 프로세스를 실행할 때 필요한 일부 메모리만 로드하고 나머지는 보조기억장치에 둬서 이런 물리적 메모리 크기의 한계를 극복합니다. 가상 메모리를 통해 프로세스는 전체가 물리적 메모리에 있는 것처럼 보이되, 작은 양의 메모리를 차지하며 프로세스를 수행할 수 있게 되었고, 더 많은 프로그램을 동시에 실행할 수 있게 되었습니다. : 현재 필요한 page에만 메모리를 올리는 것입니다. CPU 이용률과 처리율이 높아지고, 더 많은 사용자를 수용할 수 있습니다. * valid-invali..

[운영체제(OS)] 9-4) 페이징(Paging)

: 프로세스의 물리 주소 공간이 연속적이지 않게 하는 메모리 관리 체계입니다. 따라서 외부 단편화를 방지할 수 있습니다. 1) 물리 메모리를 프레임이라 하는 고정된 크기의 블록으로 나눕니다. 2) 논리 메모리를 페이지라고 하는 동일 크기의 블록으로 나눕니다. 3) CPU에 의해 생성된 모든 주소는 페이지 번호(p), 페이지 오프셋(d) 두 부분으로 나뉩니다. - 페이지 번호(p) : 페이지 테이블에 대한 인덱스로 사용. - 페이지 오프셋(d) : 물리 메모리에 있는 각 프레임의 기본 주소를 저장합니다. 프레임의 기본 주소가 페이지 오프셋과 더해져서 물리 메모리의 주소를 정의합니다. : 페이지 번호 p를 추출 => 페이지 테이블[p(인덱스)] = 해당 프레임 번호(f) => 프레임 f에서 d만큼의 메모리를..

반응형