관리자

5.1 프로세스의 개념

★ 프로세스 : 수행중인 프로그램. 디스크에 실행 파일로 존재하던 프로그램이 메모리에 올라가서 수행되는 것

◆ 문맥(context): 프로세스의 주소공간(코드, 데이터, 스택 상태)를 비롯해 레지스터에 어떤 값을 가지고 있었는지, 시스템 콜 등을 통해 커널에서 수행한 일의 상태, 그 프로세스에 관해 커널이 관리하고 있는 각종 정보(PCB)

1) 하드웨어 문맥 :  CPU의 수행상태. 프로그램 카운터, 레지스터값.

2) 프로세스의 주소 공간코드, 데이터, 스택으로 구성되는 자신만의 주소 공간

3) 커널 상의 문맥 : 운영체제가 프로세스를 관리하기 위한 자료구조 (PCB, 커널 스택)





5.2 프로세스의 상태

1) 실행(running): 프로세스가 CPU를 보유하고 기계어 명령을 실행하는 상태.  CPU는 하나이므로 여러 프로세스가 동시에 실행된다고 해도 실제 실행 상태의 프로세스는 유일

2) 준비(ready): CPU만 보유하면 당장 명령을 실행할 수 있지만 CPU를 할당 받지 못한 상태.

3) 봉쇄(blocked, wait, sleep): CPU를 할당 받아도 명령을 실행할 수 없는 상태.

이외의 일시적 상태

시작(new) : 자료 구조는 생성되었지만 메모리 획득을 승인받지 못한 상태

완료(terminated): 프로세스가 종료되었으나 프로세스와 관련된 자료구조를 완전히 정리하지 못한 상태



◆ 문맥 교환(context switch): 수행중이던 프로세스의 문맥을 저장하고 새로운 프로세스의 문맥을 세팅하는 과정.

CPU  디스패치: 준비 상태의 프로세스들 중에서 CPU를 할당 받을 프로세스를 선택하고 실제로 CPU의 제어권을 넘겨 받는 과정





5.3 프로세스 제어 블록(PCB)

운영체제가 시스템 내의 프로세스들을 관리하기 위해 프로세스당 유지하는 정보들을 담는 커널 내의 자료구조

구성 요소:

- 프로세스의 상태

- program counter(CPU 수행 관련 하드웨어 값)

- CPU 레지스터(CPU 수행 관련 하드웨어 값)

- CPU 스케줄링 정보

- 메모리 관리 정보(code, data, stack의 위치 정보)

- 자원 사용 정보

-입출력 상태정보





5.4 문맥 교환

하나의 사용자 프로세스로부터 다른 사용자 프로세스로 CPU의 제어권이 이양되는 과정.

원래  CPU를 보유하던 프로세스는 context를 자신의 PCB에 저장. 새롭게 CPU를 할당 받을 프로세스는 자신의 context를 하드웨엉로 복원.

시스템 콜이나 인터럽트로 커널 모드로 넘어가는 것은 해당 X. 이 경우에도 문맥의 일부를 PCB에 저장하긴 하나 다른 사용자 프로세스로 변환되는 것이 아니기 때문.

문맥 교환에 소요되는 시간은 오버헤드로 작용. -> 따라서, 시분할 시스템에서 타이머의 CPU 할당 시간을 적절히 조절하는 것이 중요. 너무 짧으면, 문맥 교환 오버헤드가 큼. 너무 길면, 시분할의 의미가 퇴색



5.5 프로세스 스케줄링을 위한 큐

1) 작업 큐(job queue): 시스템 내의 모든 프로세스를 관리하기 위한 큐. 프로세스의 상태와 무관하게 모든 프로세스가 속함. 작업 큐에 있다고 메모리 할당 받은 것은 아님

2) 준비 큐: CPU를 할당 대기.

3) 장치 큐: 장치마다 서비스를 대기하는 큐. 자원마다 존재. 여기에 속한 프로세스는 봉쇄상태.

큐는 프로세스의 PCB를 연결리스트로 연결한 형태

큐헤더 - 큐의 가장 앞 부분



5.6 스케줄러

어떤 프로세스에게 자원을 할당할지 결정하는 운영체제 커널의 모듈

1) 장기 스케줄러(=작업 스케줄러. job scheduler) : 어떤 프로세스를 준비 큐에 삽입할지 결정 - 프로세스의 메모리 할당하는 문제에 관여. 시작 상태의 프로세스 중 어떤 프로세스를 준비큐에 넣을지 결정. 속도가 느려도 됨. 메모리에 동시에 올라가는 프로세스의 수 조절.(시작 상태의 프로세스에 메모리를 할당할지 결정하므로) 하지만, 현대의 시분할 시스템은 장기 스케줄러 사용 안함. 바로 준비 큐에 넣음.

2) 단기 스케줄러(=CPU 스케줄러) : 준비 상태의 프로세스 중 어떤 프로세스를 다음 번에 실행 상태로 만들 것인가 결정.== 준비 큐의 프로세스 중 어떤 프로세스에게 CPU를 할당할 것인가. 시분할 시스템에서 타이머 이터럽트시 단기 스케줄러 호출,. 빈번하게 호출되므로 빨라야함.

3) 중기 스케줄러: 현대의 시분할 시스템에서 이용. 너무 많은 프로세스가 메모리에 적재되어 CPU 수행에 당장 필요한 프로세스의 주소 공간도 올려두기 어려울 때, 메모리에 있는 프로세스 중 일부를 통째로 디스크에 저장.(스왑 아웃: swap out). 0순위: 봉쇄 상태의 프로렛 -> 준비큐로 이동하는 프로세스

프로세스의 상태 : 중지 상태(suspended) - 외부적인 이유로 프로세스가 정지된 상태(중지 준비 상태. 중지 봉쇄상태)

5.7 프로세스의 생성
자식 프로세스는 부모 프로세스의 주소공간을 복사하여 시작
unix의 fork()
pid 제외하고 모든 것이 똑같음. fork()시 원본은 양수, 복사본은 0 return
프로세스 종료 :
1) 자발적 종료 - exit() 시스템 콜
2) 비자발적 종료 -자식의 프로세스를 부모가 강제 종료 : abort()
자원의 한계치를 넘는 자원 요구/ 더 이상 작업이 필요 없는 경우 / 부모 프로세스의 종료

5.8 프로세스 간의 협력
원칙적으로 다른 프로세스의 메모리 공간 참조 불가.

IPC(Inter-process comunication): 하나의 컴퓨터 안에서 실행 중인 서로 다른 프로세스 간의 통신
1) 메시지 전달(message passing): 공유 변수 X.
commnication link 생성 -> 커널에 시스템 골 방식을 send, receive  요청.
comunication link.는 자동 생성. 하나의 프로세스에게는 - 하나의 링크만 존재.
간접통신: 메일박스/포트로부터 전달받음. 여러 프로세스가 메일박스르 공유하는 경우, 어느 프로세스가 받는가?(P1, P2, P3가 공유할 때 P1이 보냄. 수신자는 P2? p3?)
-> 해결책: 둘만 사용하는 링크 만들기/임의로 수신자 지정 / receive를 각 시점에서 한 프로세스만 가능하도록

2) 공유 메모리
시스템 콜을 통해 본인의 주소 공간 일부 공유
동일한 물리적 메모리에 매핑/

2) 공유 메모리(shared memory) : 공유 변수 O.

'CS 기본 이론 > OS' 카테고리의 다른 글

7. 메모리 관리  (0) 2019.11.04
6.4 CPU 스케줄링  (0) 2019.10.31
4장 인터럽트 원리  (0) 2019.10.24
3장 컴퓨터 시스템의 동작 원리  (0) 2019.10.10
개요  (0) 2019.10.08

4.1 프로그램의 구조와 인터럽트

프로그램을 수행하기 위해서는 명령의 주소가 메모리에 올라가있어야한다.

프로그램의 주소 영역 : 코드, 데이터, 스택

코드 - 기계어 명령 부분

데이터 - 전역변수

스택 - 복귀할 주소 및 데이터

 

돌아올 주소를 스택에 저장

프로그램 내에서 발생되는 함수 호출에 필요한 복귀 주소 : 프로그램의 주소 공간 중 스택

인터럽트에 의해 CPU를 선점당한 위치 : 운영 체제 커널

 

◆ PCB(PRocess Control Block) 프로세스 제어 블록:

인터럽트 발생시 프로그램의 어느 부분까지 수행했는가를 저장하기 위한 영역

A 수행 중 인터럽트 -> 현재 실행 중이던 지점을 A의 프로세스 블록에 저장

 

4.2 컴퓨터 시스템의 작동 개요

◆ PC(Program Counter) 프로그램 카운터:

CPU가 수행해야할 메모리 주소를 담고 있는 카운터

 

컴퓨터의 구조:

하드웨어 : CPU, 메모리

+ 입출력 장치의 CPU와 메모리 : 입출력 컨트롤러(I/O controller), 로컬 버퍼(Local Buffer)

 

프로그램 카운터가 운영체제가 존재하는 부분을 가리키는 경우 -> 커널 모드

사용자 프로그램을 가리키는 경우 -> 사용자 모드

 

CPU의 명령

일반 명령 : 메모리를 읽고 CPU에서 계산하고 다시 메모리에 적는 과정 - 모든 프로그램이 수행할 수  있음

특권 명령: 보안이 필요한 명령. 입출력 장치, 타이머 등 접근. - 운영체제만 수행할 수 있도록 제한.

모드 비티를 통해 제한

 

시스템 콜(system call) : 사용자 프로그램이 특권 명령의 권한이 필요한 경우 - 운영체제에 요청

예) 디스크에서 데이터 읽기:

CPU가 컨트롤 레지스터를 세팅해서 데이터를 읽어오도록 명령

-> 디스크 컨트롤러가 자신의 로컬 버퍼에 저장

-> 디스크 컨트롤러가 인터럽트 발생

 

◆ 인터럽트 라인(interrupt line): 주변장치가 인러텁트를 세팅할 사용하는 것

인터럽트의 발생 원인마다 라인이 다름

 

인터럽트 발생 -> 커널 내의 인터럽트 처리 코드 수행

 

4.3 프로그램의 실행

1) 메모리에 실행 파일이 적재

2) 프로그램이 CPU를 할당받고 기계 명령을 수행하고 있는 상태를 의미.

 

여러 프로그램이 짧은 시간 단위로 CPU를 나누어 씀.

프로그램 전체가 메모리에 적재 되지는 않음

4.1 프로그램의 구조와 인터럽트

프로그램을 수행하기 위해서는 명령의 주소가 메모리에 올라가있어야한다.

프로그램의 주소 영역 : 코드, 데이터, 스택

코드 - 기계어 명령 부분

데이터 - 전역변수

스택 - 복귀할 주소 및 데이터

 

돌아올 주소를 스택에 저장

프로그램 내에서 발생되는 함수 호출에 필요한 복귀 주소 : 프로그램의 주소 공간 중 스택

인터럽트에 의해 CPU를 선점당한 위치 : 운영 체제 커널

 

◆ PCB(PRocess Control Block) 프로세스 제어 블록:

인터럽트 발생시 프로그램의 어느 부분까지 수행했는가를 저장하기 위한 영역

A 수행 중 인터럽트 -> 현재 실행 중이던 지점을 A의 프로세스 블록에 저장

 

4.2 컴퓨터 시스템의 작동 개요

◆ PC(Program Counter) 프로그램 카운터:

CPU가 수행해야할 메모리 주소를 담고 있는 카운터

 

컴퓨터의 구조:

하드웨어 : CPU, 메모리

+ 입출력 장치의 CPU와 메모리 : 입출력 컨트롤러(I/O controller), 로컬 버퍼(Local Buffer)

 

프로그램 카운터가 운영체제가 존재하는 부분을 가리키는 경우 -> 커널 모드

사용자 프로그램을 가리키는 경우 -> 사용자 모드

 

CPU의 명령

일반 명령 : 메모리를 읽고 CPU에서 계산하고 다시 메모리에 적는 과정 - 모든 프로그램이 수행할 수  있음

특권 명령: 보안이 필요한 명령. 입출력 장치, 타이머 등 접근. - 운영체제만 수행할 수 있도록 제한.

모드 비티를 통해 제한

 

 시스템 콜(system call) : 사용자 프로그램이 특권 명령의 권한이 필요한 경우 - 운영체제에 요청

예) 디스크에서 데이터 읽기:

CPU가 컨트롤 레지스터를 세팅해서 데이터를 읽어오도록 명령

-> 디스크 컨트롤러가 자신의 로컬 버퍼에 저장

-> 디스크 컨트롤러가 인터럽트 발생

 

◆ 인터럽트 라인(interrupt line): 주변장치가 인러텁트를 세팅할 사용하는 것

인터럽트의 발생 원인마다 라인이 다름

 

인터럽트 발생 -> 커널 내의 인터럽트 처리 코드 수행

 

4.3 프로그램의 실행

1) 메모리에 실행 파일이 적재

2) 프로그램이 CPU를 할당받고 기계 명령을 수행하고 있는 상태를 의미.

 

여러 프로그램이 짧은 시간 단위로 CPU를 나누어 씀.

프로그램 전체가 메모리에 적재 되지는 않음

 

프로그램 마다 코드, 데이터, 스택 공간을 각각 가짐.

커널도 프로그램이므로 독립적인 코드, 데이터, 스택 공간을 가짐.

커널의 코드: CPU, 메모리 등의 자원 관리 + 사용자 인터페스 제공 + 시스템 콜 및 인터럽트

 

◆ 프로세스(process) : 현재 실행되는 프로그램

 

프로그램 마다 코드, 데이터, 스택 공간을 각각 가짐.

커널도 프로그램이므로 독립적인 코드, 데이터, 스택 공간을 가짐.

커널의 코드: CPU, 메모리 등의 자원 관리 + 사용자 인터페스 제공 + 시스템 콜 및 인터럽트

커널의 데이터: 프로세스의 상태, CPU 사용 정보, 메모리 사용 정보를 유지하기 위한 자료구조인 PCB 블록

커널의 스택 : 프로세스 별로 별도 스택. 커널은 공유 코드로 모든 사용자 프로그램이 시스템 콜을 통해 커널의 함수를 접근할 있기 때문에 일관성을 유지하기 위함.

 

4.4 사용자 프로그램이 사용하는 함수

1) 사용자 정의 함수: 프로그래머가 작성한 함수

2) 라이브러리 함수: 프로그래머가 직접 작성하지 않았지만 누군가가 작성한 함수

1)과 2)는 컨파일시 프로그램의 코드 부분에 기계어로 삽입 -> 프로세스의 주소 공간에 포함됨.

3) 커널 함수: 운영 체제 커널의 코드에 정의된 함수. 시스템 콜 함수 + 인터럽트 처리 함수. 커널의 주소 공간에 위치

 

4.5 인터럽트

CPU는 PC 지점의 서비스 이후 인터럽트 라인이 세팅되었는지 확인

타이머 인터럽트 : 특정 프로세스가 CPU 독점하는 것 방지

트랩(trap): 소프트웨어가 발생시키는 인터럽트

1)예외 상황(exception): 프로그램이 허용되지 않은 연산을 할때. ex: 0으로 나누는 연산, 주소 공간을 넘어서는 메모리 참조. 인터럽트 처리 루틴처럼 운영체제의 코드 영역에 처리 루틴 존재

2) 시스템콜: 사용자 프로세스가 운영 체제의 서비스를 요청하기 위해 커널의 함수를 호출하는 것. 인터럽트 라인 세팅.

 

◆ 인터럽트 벡터: 인터럽트 발생시 처리해야할 루틴의 주소를 보관하는 테이블

◆ 인터럽트 핸들러: 실제 인터럽트를 처리하기 위한 루틴. 인터럽트 서비스 루틴.

 

인터럽트 처리 뒤엔 인터럽트 발생 직전 시의 프로세스에게 CPU 제어권이 넘어감.

타이머 인터럽트인 경우, 발생 직전의 프로세스에게 넘어가지 않음.

 

4.6 시스템 콜

모드비트가 0 : 커널모드

모드비트가 1 : 사용자 모드

 

CPU는 매 시점 명령을 수행하기 이전에 모드 비트 체크.

운영체제가 사용자 프로그램에게 CPU의 제어권을 넘길때는 모드 비트를 0에서 1로 바꿔서 넘김.

시스템 콜: 사용자 프로그램에서 특권 명령 수행 필요시 운영체제에게 대행 요청

 

예: 디스크에서 데이터 읽기

1) 프로세스가 인터럽트 라인 세팅

2) 운영체제가 인터럽트 확인 -> 해당 서비스 루틴으로 이동

3) 디스크 컨트롤러에게 파일 읽기 명령

4) 그 동안 다른 프로세스 처리

5) 디스크 컨트롤러의 인터럽트

6) 처음에 데이터 읽기 요청한 프로세스를 큐에 삽입

 

CPU를 선점당하는 경우

1) 타이머에 인한 인터럽트

2) 시스템 콜.

 

4.7 프로세스의 상태

실행: CPU를 할당 받고 기계어 명령을 수행하는 프로세스의 상태

준비: CPU를 할당 받으면 바로 실행할 수 있지만 CPU가 하나라서 아직 할당받지 못한 상태

봉쇄: CPU를 할당받더라도 명령을 수행할 수 없는 프로세스 상태. 예: 입출력 작업이 완료되기를 기다리는 상태

 

준비 -> 실행: 실행 상태의 프로세스가 봉쇄로 바뀌거나, 타이머 인터럽트에서 CPU 할당 시간 만료

준비 큐(ready queue)로 관리(준비 큐에 프로세스를 할당하는 방법 - CPU 스케줄링)

 

자원 별로 큐 존재. 예: 디스크 입출력 큐, 키보드 입출력 큐, 공유 데이터에 대한 접근. HW. SW 큐.

디스크 입출력 큐에 서있다가 -> 순서대로 작업 -> 완료 되면 디스크 컨트롤러가 CPU에게 인터럽트 발생-> 프로세스가 CPU의 준비 큐로 이동

SW의 경우 자원부족보다는 일관성을 위해 접근 권한을 제한하는 것

 

4.8 프로세스의 실행 상태(running)

1) 사용자 모드에서의 실행 상태(user mode running)

2) 커널 모드에서의 실행 상태(kernel mode running): 시스템 콜 + 인터럽트.

커널 모드에서의 실행 상태도 프로세스의 실행 상태임. 커널은 대행일 뿐.

 

'CS 기본 이론 > OS' 카테고리의 다른 글

6.4 CPU 스케줄링  (0) 2019.10.31
5장 프로세스  (0) 2019.10.26
3장 컴퓨터 시스템의 동작 원리  (0) 2019.10.10
개요  (0) 2019.10.08
1. 운영체제의 정의  (0) 2019.10.08

인터럽트(interrupt)

 

인터럽트 벡터(interrupt vector)


인터럽트의 종류에 따라 handler 코드를 가리키는 포인터를 가진 자료구조.
인터럽트 종류마다 번호가 정해져있다.


인터럽트 번호
- linux
0 ~ 31 : 예외상황
32 ~ 47 : 하드웨어 인터럽트
128 : 시스템콜

- BIOS
0 ~ 7 : 예외상황
8 ~ 19 : 하드웨어 인터럽트
10, 13 ... : 시스템 콜

linux와 BIOS의 인터럽트 번호 중 겹치는 번호가 존재한다.
리눅스는 로딩이 되면 BIOS의 인터럽트 번호를 제거하고 linux의 인터럽트 번호를 설정한다.


인터럽트 핸들링(interrupt handling)

인터럽트가 발생했을 때 처리하는 것.
커널의 코드를 수행하는 것이므로 커널의 스택을 이용한다.
n개의 프로그램 -> n개의 독립 공간 존재

( 참고 )
스택 : 다른 함수를 호출했을 때, 돌아가야할 주소를 저장하는 자료구조 
데이터 : 전역 변수 등 프로그램이 사용하는 각종 데이터가 저장되는 곳 
코드 : 프로그래머가 작성한 코드가 기계어 형태로 저장되는 곳 


처리 과정

1) 현재까지 수행한 것을 PCB(Proces Control Block)에 저장한다.
2) 인터럽트 처리 루틴으로 와서 커널 코드 수행 
3) 인터럽트가 발생한 지점으로 돌아감 

* 인터럽트 중 인터럽트 발생은 허용되지 않는다.
하지만 우선순위가 높은 인터럽트가 발생하는 경우
커널 스택에 저장하고 우선 순위가 높은 것부터 처리 


인터럽트의 종류

1) 하드웨어 인터럽트(hardware interrupt) : 하드웨어 장치가 CPU에게 서비스를 받아야하는 경우 
2) 소프트웨어 인터럽트(software interrupt) :  예외 처리(메모리 침범, 0으로 나누는 연산 등), 시스템 콜 


입출력 처리 방법

1) 동기
- 입출력이 완료된 다음에 CPU를 다른 프로그램에 양도하는 방식 
- 비효율적이다
- 다른 프로그램에 양도하는 경우, 장치별로 큐를 두어 다수의 입출력 연산을 순서대로 처리하도록 한다.

2) 비동기 
입출력 연산을 요청한 뒤, CPU 제어권이 연산을 호출한 프로그램에 부여하는 방식 


DMA(Direct Memory Access): 

CPU이외에 메모리 접근이 가능한 장치
일종의 컨트롤러 
원래는 주변 장치들이 메모리에 접근하기 위해서는 CPU에 인터럽트를 발생시켜 CPU가 로컬 버퍼와 메모리 사이에서 데이터를 옮겨준다.
비효율적 
주변 장치들에 의해 자주 인터럽트 되는 것을 방지 
바이트 대신 블록 단위로 메모리를 읽은 뒤 CPU에 인터럽트. 
인터럽트의 빈도를 줄임. 


메모리 

1) 주기억 장치 
메모리 휘발성, RAM 

2) 보조기억 장치 
비휘발성 
- 파일 시스템용 
- 메모리의 연장 공간인 스왑 영역(swap area) 
프로그램 중 지금 사용하지 않는 부분을 저장하는 것 
swap out : 디스크에 내려 놓는 일 
하드 디스크가 주로 이용됨 

 


하드웨어 보안 

모드비트(mode bit) : 사용자 프로그램이 커널 모드에서만 사용할 수 있는 연산을 하는 것을 방지하기 위한 감시 장치 
CPU는 보안 관련 명령 이전에 항상 모드 비트를 확인. 
사용자 프로그램에 CPU의 제어권을 넘길 때는 1로 세팅 
인터럽트 발생시 다시 0으로 리셋됨. 


3.10 메모리 보안 

접근하는 메모리 영역이 합법적인가 확인하는 두 개의 레지스터 
1) 기준 레지스터 : 가장 작은 주소 
2) 한계 레지스터 : 범위 
사용자 모드에서는 두 레지스터를 이용하여 주소 범위 체크 
커널 모드에서는 무제한 접근 

3.11  CPU 보호

한 프로그램의 독점을 막기 위해 타이머(timer) - 하드웨어 사용 
정해진 시간이 지나면 인터럽트 발생 -> 운영체제에 CPU 제어권 넘김 
1씩 감소해서 0이 되면 timeout


참고 : https://rusy.tistory.com/entry/인터럽트interrupt

'CS 기본 이론 > OS' 카테고리의 다른 글

6.4 CPU 스케줄링  (0) 2019.10.31
5장 프로세스  (0) 2019.10.26
4장 인터럽트 원리  (0) 2019.10.24
개요  (0) 2019.10.08
1. 운영체제의 정의  (0) 2019.10.08

1. CPU 관리

1) FCFS(First Come First Serve)

 

2) 라운드 로빈(Round Robin):

   한 번에 고정된 시간을 할당하여 처리.

   짧은 프로그램이 기다릴 필요 X

 

3) 우선순위(priority)

 

2. 메모리 관리

효율적인 할당 및 보안(메모리 영역 침범 방지)

1) 고정 분할(fixed partition)

   물리적 메모리를 몇 개의 영구 메모리로 분할.

   메모리 조각보다 큰 프로그램 적재 X

  내부 조각(internal fragmentation) : 분할의 크기보다 작은 프로그램이 적재되는 경우

 

2) 가변 분할(variable partition)

    메모리 조각보다 큰 프로그램 적재 X

    내부 조각 발생 X

   외부 조각(external fragmentation) : 크기가 작아 프로그램에 할당될 수 없는 영역

 

3) 가상 메모리(virtual memory)

물리 메모리보다 큰 프로그램 실행 가능

0에서 시작하는 가상 메모리 주소를 물리 메모리 주소로 mapping.

   스왑 영역(swap area) : 프로그램 실행시 프로그램 전체가 필요한 것이 아니므로, 필요한 일부만 메모리에 적재.

나머지는 하드디스크와 같은 보조 기억 장치에 적재. 

   페이징(paging) : 동일한 단위로 메모리를 나누는 기법

 

3. 주변 장치 및 입출력 장치 관리

   인터럽트(interrupt) : CPU의 서비스가 필요한 경우 CPU에게 보내는 신호

   인터럽트 처리 루틴 : 인터럽트 발생시 처리 작업을 정의한 코드

   컨트롤러(controller) : 주변 장치에 존재하는 작은 CPU.

                                  장치 관리 및 메인 CPU에 인터럽트 발생

 

'CS 기본 이론 > OS' 카테고리의 다른 글

6.4 CPU 스케줄링  (0) 2019.10.31
5장 프로세스  (0) 2019.10.26
4장 인터럽트 원리  (0) 2019.10.24
3장 컴퓨터 시스템의 동작 원리  (0) 2019.10.10
1. 운영체제의 정의  (0) 2019.10.08

운영체제(Operating System; OS)

컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어

 

커널(kernel)

운영체제 중 항상 메모리에 상주하고 있는 부분

운영체제 전체가 메모리에 동시에 올라가기에는 용량이 너무 크기 때문에 일부만 상주한다.

 

운영체제의 기능

1) H/W : 시스템 자원 관리 (사용자가 알기 힘든 하드웨어 관리)

  • 효율성
  • 형평성 : 일부 프로그램/사용자에 몰리면 안됨

2) 사용자에게 편리한 인터페이스 제공

3) 보안

 

 

운영체제의 분류

1) 동시 작업

- 시분할 시스템(time sharing system) : CPU의 작업 시간을 나누어 쓰는 시스템

- 다중 프로그래밍 시스템(multi-programming system; 멀티프로그래밍) : 메모리 공간을 나누어 사용하는 시스템. 동시에 여러 프로그램이 메모리에 올라옴.

- 다중처리기 시스템(multi-processor system; 멀티프로세서): 하나의 컴퓨터에 여러개의 CPU

 

2) 작업 처리 방식

- 일괄 처리(batch processing)

- 시분할(time sharing)

- 실시간(real time)

'CS 기본 이론 > OS' 카테고리의 다른 글

6.4 CPU 스케줄링  (0) 2019.10.31
5장 프로세스  (0) 2019.10.26
4장 인터럽트 원리  (0) 2019.10.24
3장 컴퓨터 시스템의 동작 원리  (0) 2019.10.10
개요  (0) 2019.10.08

+ Recent posts