목록Dev. Study Note/OS Introduction (10)
Priv's Blog
1. 파일 시스템과 파일 1.1) 파일 저장 장치에 정보를 저장하기 위한 논리적 저장 단위. 이름이 붙은 정보의 집합체로서, 1 단위로 조작한다. 일반적으로 HDD, CD, 테이프 등의 2차 저장 장치에 저장된다. 메인 메모리에 존재할 수도 있다. 운영체제는 파일에 대해 다양한 연산들을 지원한다. 일반(정규) 파일 가장 일반적인 파일과 데이터를 포함하는 데 사용된다. 텍스트 또는 이진 형태이다. 디렉터리 파일 모든 유형의 파일에 액세스 할 수 있는 정보를 포함한다. 실제 데이터 파일은 포함하지 않는다. 특수 파일 시스템 장치를 정의한다. 프로세스로 생성한 임시 파일(파이프)이 이에 해당한다. 1.2) 파일 시스템 파일 자원을 관리하고, 파일 생성, 삭제, 수정 등 파일 접근과 제어에 대한 책임을 가지는 ..
1. 입출력 시스템 관리 1.1) 입출력 시스템과 입출력 모듈 프로그램의 실행 속도는 입출력 시스템의 성능에 영향을 많이 받으므로, 운영체제의 입출력 관리와 제어 역할이 중요하다. 입출력 시스템은 물리적 입출력 장치와 입출력 모듈을 포함한다. 입출력 장치는 모니터, 프린터, 마우스, 키보드 등 실제 입출력을 수행한다. 입출력 모듈은 메모리, 프로세서 레지스터 등 내부 저장 장치, 물리적 입출력 장치 사이의 이진 정보를 전송하는 방법을 제공한다. 프로세서를 대신하여 입출력과 관련된 복잡한 일을 처리하면, 입출력 채널 또는 입출력 프로세서가 된다. 단순히 프로세서의 입출력과 관련된 일을 처리하면, 입출력 제어기 또는 장치 제어기가 된다. 1.2) 입출력 제어기 입출력 장치를 직접 시스템 버스에 연결하지 않고..
1. 가상 메모리 (Virtual Memory) 1.1) 가상 메모리의 개념 각 프로세스에게 물리적 메모리(메인 메모리)가 아닌 가상의 논리적 메모리를 제공하기 위해 사용된다. 이를 위해 가상 주소와 실제 주소를 분리해서 사용한다. 가상 주소(논리적 주소): 실행 중인 프로세스가 참조하는 주소 실제 주소(물리적 주소): 메인 메모리에서 사용하는 주소 1.2) 가상 메모리 제공 목적 메인 메모리보다 더 큰 가상 주소 공간을 사용하기 위함이다. 프로그램 전체를 동시에 실행하지 않으므로, 가상 주소 공간의 일부만 메모리에 적재해 실행할 수 있다. 각 프로세스는 연속적인 가상 주소 공간을 사용할 수 있다. 가상 주소 공간 상의 연속적인 주소가 꼭 메인 메모리에서도 연속적일 필요는 없다. 이를 인위적 연속성이라고..
1. 메인 메모리 메인 메모리는 컴퓨터의 핵심 자원으로 프로세서는 메인 메모리로부터 처리할 내용을 불러오고 메인 메모리에 처리 결과를 저장한다. 기본 단위는 바이트(byte) 또는 워드(word)를 사용한다. 1.1) 메모리 관리 운영체제는 동적으로 메인 메모리를 관리한다. 메인 메모리 관리 활동에는 프로세스들을 위한 메모리 할당, 제거, 보호 등이 있다. 메인 메모리는 운영체제를 위한 영역과 실행 중인 프로그램을 위한 사용자 영역으로 구분된다. 다중 프로그래밍 시스템에서는 사용자 영역을 여러 프로세스가 사용하도록 세분화하는 작업이 필요하다. 2. 메모리 관리 개념과 정책 2.1) 반입 정책/적재 정책 (Fetch Strategy) 디스크에 있는 프로세스를 메인 메모리에 로드할 시기를 결정하는 방법이다...
1. 스케줄링의 이해 1.1) 스케줄링 개념 스케줄링이란, 여러 프로세스가 번갈아 사용하는 자원을 어떤 시점에 어떤 프로세스에 할당할 것인지를 결정하는 것이다. 다중 프로그래밍을 가능하게 하는 동작 기법으로, 프로세스에 컴퓨터 자원을 적절히 배치하여 시스템 성능을 개선하는 역할을 한다. 즉, 다중 프로그래밍에서 프로세서를 할당할 프로세스를 선택할 때 필요한 전략을 스케줄링이라고 할 수 있다. 1.2) 프로세서 스케줄링 프로세서 자원에 대한 스케줄링을 프로세서 스케줄링이라고 부른다. 다중 프로그래밍 시스템에서 시스템의 목표를 달성할 수 있도록 프로세서를 할당하는 일련의 과정이다. 프로세스들에게 프로세서를 효율적으로 할당, 시스템의 작업 처리 능력을 향상하며 응답 시간을 최소화하는 것이 목적이다. 스케줄링이..
1. 교착 상태의 개념과 발생 원인 1.1) 교착 상태(DeadLock)와 기아 상태(Starvation)의 개념 교착 상태란, 결코 일어나지 않을 사건(이벤트)에 대해서 프로세스가 기다리고 있는 것을 말한다. 기아 상태란, 무기한 연기로 인해 아무리 기다려도 자신의 차례가 돌아오지 않는 것을 말한다. 다중 프로그래밍 시스템에서 프로세스들이 한정된 시스템 자원 차지를 위해 경쟁할 때 발생할 수 있다. 교착 상태, 기아 상태는 프로세스가 작업을 수행하지 못하고 무한히 대기한다는 공통점이 있다. 하지만 서로 작업을 수행하지 못하는 원인이 다르다. 1.2) 교착 상태 예시 프로세스 A와 B는 스캐너, CD 레코더를 공유한다. 프로세스 A는 스캐너를 할당받고, CD 레코더를 추가로 할당받는다. 프로세스 B는 C..
1. 병행 프로세스 프로세스 여러 개가 동시에 실행되는 것을 병행 프로세스라고 부른다. 병행 프로세스는 독립 프로세스와 협력 프로세스로 나눠진다. 병행 프로세스들은 제한된 자원을 공유하기 위해 상호작용해야 한다. 또한 프로세스 간의 동기화 문제 및 교착 상태 문제를 해결하기 위한 방안이 필요하다. 병행 프로세스는 다음과 같은 환경에서 실행된다. 다중 프로세서 시스템 분산 처리 시스템 단일 프로세서 시스템에서의 다중 프로그래밍 1.1) 독립 프로세스 다른 프로세스와 영향을 주고받지 않으므로, 동작을 재현할 수 있다. 초기값에 따라 동일한 결과를 보여준다. 1.2) 협력 프로세스 다른 프로세스와 영향을 주고받으면서 기능을 수행한다. 1.3) 병렬성과 병행성 병렬 컴퓨팅과 병행 프로세스는 여러 프로세스들을 동..
1. 프로세스의 개념 1.1) 등장 배경 다중 프로그래밍이 등장하면서 여러 프로그램들이 서로의 자원을 공유하기 시작했다. 이로 인해 여러 프로그램들을 함께 제어하기 위한 방법이 필요해졌다. 1960년대, '멀틱스' 시스템 설계자가 처음으로 '프로세스'라는 용어를 사용함. 1.2) 프로세서의 정의 가장 보편적인 프로세서의 정의는 '실행 중인 프로그램'이다. 프로그램: 코드와 정적 데이터들로 이루어진 것. 프로세스: 프로그램이 메모리에 적재된 것. 프로그램의 코드가 얼마 되지 않더라도, 프로세스 상에서 연산을 처리할 때, 해당 프로그램이 자원을 과하게 먹는 오류가 발생할 수도 있다. 프로세스와 프로그램은 같은 개념이 아님에 주의하자. 1.3) 시스템 관점에서 본 프로세스 프로그램이 프로세스가 된다는 것은 장..