목록Operating System (7)
Be realist
다중 프로그래밍의 목적은 항상 실행할 수 있는 프로세스가 있도록 하여 CPU 사용 효율을 극대화하는 데 있다. 프로세스는 실행되는 동안 CPU 실행과 입출력 대기 두 주기를 반복한다. CPU-bound process : 적은 수의 매우 긴 CPU 버스트 I/O-bound process : 많은 수의 짧은 CPU 버스트 짧은 CPU 버스트의 빈도가 많고, 8ms 이상의 CPU 버스트는 거의 없다. CPU 성능이 발달할 수록 프로세스는 입출력 중심 프로세스가 되는 경향이 높아진다. CPU가 유휴상태가 되면 ready queue에 있는 프로세스를 하나 선택해서 실행한다. 이 선택은 CPU 스케줄러가 한다. CPU 스케줄링 결정의 4가지 상황 running -> waiting (입출력 요청) running ->..
여러 프로세스가 병행으로 수행되어 발생하는 문제를 해결하는 것을 프로세스 동기화라 한다. 다른 프로세스와 공동으로 사용하는 변수, 테이블, 파일 등을 변경하는 부분을 임계 구역(critical section)으로 둔다. 각 프로세스는 임계구역에 진입하기 전에 허가를 받아야 하고, 이 코드를 진입 구역(entry section)이라 한다. 허가를 받아 임계구역을 실행한 다음에는 다른 프로세스들이 진입할 수 있도록 한다. 이 코드를 출구 구역(exit section)이라 한다. 이외의 코드 부분을 잔류 구역(remainder section)이라 한다. critical section 문제를 해결하는 메커니즘은 다음 세 가지 요건을 충족해야 한다. - 상호 배제 (mutual exclusive) - 진행 (pr..
스레드는 프로세스와 마찬가지로 CPU의 작업 단위. (경량 프로세스 라고도 불린다) 스레드는 자원의 관리보다는 프로그램의 하나의 실행 흐름으로서 CPU가 실행되기 위해 스케줄되어야 하는 개체이다. 스레드 식별자, 프로그램 카운터, 레지스터 집합, 스택만을 가지며, 텍스트 부분, 데이터 부분, 다른 운영체제 자원은 같은 프로세스에 속한 다른 스레드와 공유한다. 하나의 프로세스에서 병행 수행되는 스레드 : 주소 공간과 같은 자원을 서로 공유 하나의 컴퓨터에서 병행 수행되는 프로세스 : 물리적 메모리, 디스크 등을 공유 모든 프로그램을 다중 스레드를 사용하도록 바꾼다고 하여 성능이 향상되는 것은 아니다. 스레드의 도입으로 한 응용프로그램에서 여러 가지 일을 동시에 수행할 수 있다. 각 일을 처리하기 위해 자식..
프로세스의 구성 텍스트 -> 프로그램 코드 현재 상태 -> 프로그램 카운터 등 현재 프로세서의 레지스터 값 스택 -> 일시 데이터(파라미터, 복귀주소, 지역변수 등) 저장 데이터 부분 -> 광역 변수 저장 프로그램 자체는 프로세스가 아님! 여러 프로세스가 같은 프로그램과 관련되어 있어도 서로 같은 것으로 간주하지 않는다. 프로세스 상태도 숙지, 유닉스 프로세스의 상태도(참고) 단일 프로세스 시스템에서는 현재 실행 상태에 있을 수 있는 프로세스는 오직 하나 뿐! 하지만, 많은 프로세스가 대기 또는 준비완료 상태에 있을 수 있다. 대기중인 프로세스는 현재 프로세서가 실행할 프로세스가 없더라도 실행될 수 없다. PCB 프로세스 제어 블록에는 다음과 같은 정보들이 유지된다. - 프로세스 상태 : 생성중, 실행중..
컴퓨터 시스템 구조 CPU, 여러 개의 장치 제어기로 구성되어있다. (공유된 주기억장치에 접근을 제공하는 공통 버스에 의해 연결되어있다) ROM에 저장되어 있는 부트스트랩 프로그램은 모든 하드웨어를 초기화하고 운영체제 커널을 주기억장치에 적재한 후에 커널을 실행한다.
운영체제란? 컴퓨터 하드웨어를 관리 응용프로그램의 토대를 제공 유저와 하드웨어 사이의 매개체 컴퓨터 시스템의 구성요소 -> 하드웨어, 운영체제, 응용프로그램, 사용자 (그림으로 기억하기) 운영체제 범위에 대한 정의 -> 항상 수행되고 있는 유일한 프로그램 (커널) 운영체제는 사용자 관점 시스템 관점(자원 할당자, 제어 프로그램) 두 가지로 바라볼 수 있다. 운영체제의 목표 사용자에게 편리성 제공 컴퓨터 시스템의 효율적 운영(자원 할당, 프로그램 제어) 메인프레임 시스템 - 일괄(batch)처리 시스템 사용자가 직접 시스템을 사용하는 것이 아닌, 전문 컴퓨터 운영자에게 프로그램과 데이터를 펀치 카드를 통해 제공.프로그램은 한 번에 하나씩 수행되었고, 운영체제는 하나의 작업을 다음 작업으로 옮기는 제어를 담..
Preparaing for popquiz/midterm-exam (Lec1~Lec5 + Lec6) This is just Overview. I have to study precisely and make the branches of this notions. Contents Lecture 1. Introduction What is an operating system?Early Operating SystemsSimple Batch SystemsMultiprogrammed Batch SystemsTime-sharing SystemsPersosnal Computer SystemsParallel and Distributed SystemsReal-time Systems Lecture 2. System Structur..