본문 바로가기

Operating System [OS]

(11)
[OS] 11.Mass-Storage Systems Mass Storage Structure Magnetic Disk : 현대 컴퓨터의 보조 저장장치를 제공 (HDD) - 드라이브는 초당 60에서 250회 회전 Transfer rate : 드라이브와 컴퓨터 사이에 데이터가 흐르는 속도 Positioning time (Random-access time) : Seek time + Rotation Latency Seek time : 원하는 실린더로 디스크 암을 이동시키는 시간 Rotation time : 디스크 헤더 아래로 원하는 섹터가 위치하는데 걸리는 시간 드라이브는 I/O 버스를 통해 컴퓨터와 연결 컴퓨터의 Host Controller는 드라이브나 저장장치에 내장된 Disk Controller와 통신하기 위해 버스를 사용 Hard Disk 성능 Acces..
[OS] 10. File System Implementation 파일 시스템 구조 파일 구조 : 논리 저장 단위 / 관련된 정보의 모음 파일 시스템은 보조 저장 장치(디스크)에 위치함 저장하고 logical을 physical로 매핑하는 사용자 인터페이스를 제공 데이터를 쉽게 검색할 수 있도록 저장하고 위치시키는 디스크로의 효율적이고 편리한 접근을 제공 디스크는 제자리 다시쓰기와 랜덤 접근을 제공 (in-place rewrite & random access) I/O 전송은 섹터의 블록 단위로 수행 File Control Block (FCB) : 파일에 대한 정보로 구성된 저장 구조 -> Device Driver는 물리 장치를 제어 파일 시스템은 여러 계층으로 구성됨 Allocation Methods 할당 방법 : 파일에 대해 디스크의 블록이 어떻게 할당되는지 나타냄 C..
[OS] 09. File System 파일 파일의 기본 개념 사용자나 응용프로그램 관점 : 정보를 저장하고 관리하는 논리적인 단위 컴퓨터 시스템 관점 : 정보를 저장하는 컨테이너 / 0과 1의 데이터 파일이 저장되는 저장 장치 (HDD, SSD, USB, 테이프 저장 장치, 램 디스크) 파일 관리에서 OS의 역할 : 파일 생성, 기록, 읽기의 모든 과정 관리 응용프로그램이 OS 없이 파일을 다루는 것은 불가능 (저장 매체, 빈 공간 등의 관리는 모두 OS가 수행) 파일 입출력 주소 디스크 장치는 디스크 물리 주소 사용 OS는 논리 블록 주소 사용 논리 블록 주소(Logical Block Address, LBA) : 저장 매체를 1차원의 연속된 데이터 블록들로 처리 / 저장 매체의 종류에 관계 없음 모든 블록을 0부터 시작하는 블록 번호를 매..
[OS] 08. Deadlocks Dining Philosophers Problem 5명의 철학자가 원탁에서 식사하는 문제 Dining Philosophers Problem의 조건 식사 시간은 서로 다름 식사를 위해선 양쪽의 포크를 모두 확보해야 함 서로 소통할 수 없음 왼쪽 포크를 먼저 들고, 오른쪽 포크를 듦 포크가 사용 중이라면 대기함 문제가 발생하는 경우 : 거의 동시에 왼쪽 포크를 들면 오른쪽 포크를 들 수 없는 교착 상태 발생 해결 방법 중 하나 : 4명이 왼쪽 포크를 먼저 잡고 오른쪽 포크를 잡는 순서로 진행 마지막 사람은 오른쪽을 먼저 잡도록 함 -> 원형 상태로 요청이 생기지 않도록 함 Deadlock System Model - 시스템은 리소스(resource)(자원)를 포함 (CPU cycles / Memory spac..
[OS] 07. Synchronization Tools Background 프로세스는 동시에 실행 가능 / 어느 시점에서나 인터럽트 가능 / 실행이 부분적으로 완료될 수 있음 Shared Data에 대한 동시 접근은 데이터 일관성을 무너지게 할 수 있음 (Data inconsistency) 데이터 일관성 유지는 서로 협력하는 프로세스의 순서 있는 실행을 보장하기 위한 메커니즘이 요구됨 모든 버퍼를 채우는 소비자-생산자 문제 : 전체 버퍼 수를 추적하는 integer 카운터를 사용 초기에 카운터는 0으로 세팅 / 생산자가 새 아이템을 생산하면 증가, 소비자가 버퍼에서 소비하면 감소 경쟁 조건 (Race Condition) 생산자와 소비자 작업이 올바르게 작성되어도 이들이 동시에 수행되면 바르게 동작하지 않을 수 있음 counter가 5일 때, counter++..
[OS] 06. Threads & Concurrency Multithreading Multithreaded Architecture 대부분의 현대 애플리케이션은 멀티스레드임 스레드는 애플리케이션 안에서 실행 애플리케이션의 여러 작업은 별도의 스레드에서 실행 가능 화면 업데이트 / 데이터 가져오기(Fetch) / 스펠(Spell) 체크 / 네트워크 요청 응답 등 프로세스 생성은 무거운 작업(heavy-weight)이지만 스레드 생성은 가벼운 작업(light-weight) 스레드는 일부의 레지스터와 스택만 따로 가지고 코드와 데이터는 공유함 코드를 간단하게 할 수 있고 효율성을 높일 수 있음 커널은 일반적으로 멀티스레드로 동작 Multithreading의 장점 Responsiveness 응답성 : 프로세스의 일부가 차단(block)된 상태일 때도 실행을 계속하는 ..
[OS] 05. Virtual Memory Background 실행을 위해서는 코드가 메모리에 있어야 하지만, 프로그램의 일부 부분은 드물게 사용됨 (Error code / Unusual code / Large Data Structure) 전체 코드가 동시에 필요하지는 않음 부분적으로 로드된 프로그램의 실행을 고려 프그램은 더 이상 물리 메모리의 제한에 제약을 받지 않음 각 프로그램은 실행 중에 더 적은 메모리를 사용 -> 더 많은 프로그램이 동시에 실행 가능 -> CPU Utilization과 Throughput이 증가 메모리로 프로그램을 로드/스왑하기 위해 필요한 I/O가 감소 -> 사용자 프로그램이 더 빠르게 실행 Virtual Memory 물리 메모리로부터 사용자 논리 메모리를 분리 실행에 필요한 프로그램의 일부 부분만 메모리에 있음 논리..
[OS] 04. Main Memory Background 메모리 : 각각 주소가 할당된 일련의 워드 또는 바이트로 구성 CPU는 PC(Program Counter)가 지시하는 주소에서 다음 명령어를 가져옴 해당 명령어는 필요시, 추가 데이터를 가져오거나 데이터를 메모리로 내보낼 수도 있음 명령어 실행 절차 메모리로부터 하나의 명령어를 가져옴 가져온 명령어를 해독 -> 메모리에서 피연산자를 가져옴 명령어를 실행 / 필요시, 실행 결과를 메모리에 다시 저장 프로그램은 실행되기 위하여 비휘발성 저장장치에서 메모리로 가져와야 함 (프로세스) 메인 메모리와 레지스터는 CPU가 직접적으로 접근할 수 있는 유일한 저장장치 메모리 유닛은 ‘주소+읽기 요청’ 또는 ‘주소+데이터’ 그리고 쓰기 요청만 인식 레지스터 접근은 한 번의 CPU 클럭(or less)..