-
Operating System
운영체제(Operating System) :
- 제한된 컴퓨터 시스템의 자원을 효율적으로 관리&운영함으로써,
사용자에게 최대의 편리성을 제공하고자 하는 인간과 컴퓨터 사이의 인터페이스를 위한 시스템 소프트웨어
- 운영체제는 커널모드(kernel mode)와 사용자모드(user mode)로 나뉘어 구동된다.
커널모드 : 운영체제가 CPU의 제어권을 가지고 운영 체제 코드를 실행하는 모드
모든 종류의 명령을 다 실행 가능
CPU 내부에 모드비트(mode bit)가 0
사용자모드 : 일반 사용자 프로그램이 실행되며 제한적인 명령만을 수행
모드비트(mode bit)가 1
-> 시스템의 중요한 영향을 미치는 연산은 커널 모드에서만 실행 가능하게 함으로써 하드웨어의 보안 유지
- 운영체제 동작 방식 : 인터럽트 구동식(interrupt driven)
Interrupt란? 프로그램 수행 중 CPU가 강제로 제어를 가져오는 것을 말한다.
Interrupt가 발생하면 interrupt service routine(명령어)의 위치가 기록되어 있는 interrupt vector table로 이동하여 해당하는 명령어를 찾아 수행한다.
하드웨어 인터럽트 : 정전 또는 전원 공급의 이상, 하드웨어 오류, 타이머인터럽트, 입출력장치 등
소프트웨어 인터럽트 : Trap이라고도 한다
허가되지 않은 메모리 주소 참조, 0으로 나눌 경우, 시스템 콜, 페이지 부재 등
Trap이 발생하면 Trap Table로 이동하여 해당하는 명령을 수행한다.
Interrupt vector table ?
여러가지 인터럽트에 대해 해당 인터럽트 발생시 처리해야 할 루틴의 주소를 보관하고 있는 테이블
인피니언, 마이크로침, AMD, 인텔 등 대부분의 CPU들은 인터럽트 벡터 테이블을 가지고 있다.
Interrupt service routine ?
인터럽트 핸들러 라고도 하며 실제 인터럽트를 처리하는 루틴으로 실행 중이던 레지스터와 PC를 저장하여 실행중이던 CPU의 상태를 보존하고 인터럽트 처리가 끝나면 원래 상태로 복귀.
운영체제 코드 부분에는 각종 인터럽트 별로 처리해야 할 내용이 이미 프로그램이 되어 있다.
1. 운영체제의 종류 :
- 컴퓨터 운영체제 : Window, UNIX, LINUX, MS-DOS 등
단일유저, 단일작업 : MS-DOS
단일유저, 다중작업 : Window, MAC-OS
다중유저, 다중작업 : LINUX, UNIX
- 모바일 운영체제 : Android, ios
2. 운영체제의 목적
1) 사용자에게 자원 사용의 편리성을 제공
2) 효율적인 자원관리를 통해서 처리 능력 향상, 반환시간 최소화, 신뢰성과 사용가능도를 증대해 시스템의 성능을 극대화
처리능력, 반환시간, 신뢰도, 사용가능도는 운영체제의 성능을 평가하는 기준.
처리능력(throughput) : 일정 시간동안 시스템이 처리하는 작업의 양
반환시간(turn around time) : 시스템이 작업을 제출한 후 결과가 출력될 때까지의 시간
신뢰도(reliability) : 시스템이 오류 없이 주어진 문제를 정확하게 해결하는 정도
사용가능도(availability) : 시스템 사용이 필요할 때 즉시 사용 가능한 정도
3. 운영체제의 기능
1) 사용자와 시스템 간의 편리한 인터페이스 제공(Command-Line -> CLI, Graphics User Interface -> GUI, Batch)
2) CPU(프로세서), 메모리, 입출력장치 및 파일 등의 자원을 관리
3) 자원 관리를 위해 자원의 스케줄링 기능 제공
4) 하드웨어 및 데이터 등 자원의 공유 기능 제공
5) 시스템의 오류에 대한 처리 제공
6) 입출력에 대한 보조 기능 제공
7) 컴퓨터 시스템의 초기화를 담당
8) 보안 및 네트워크의 관리 기능 제공
참고
시스템 호출(System call)? 응용프로그램에서 운영체제에 어떠한 기능(시스템 자원)을 수행해 달라고 하는 하나의 수단
(사용자 프로세스가 소프트웨어 인터럽트를 통해 커널의 기능을 이용하기 위한 서비스를 요청하는 방법)
위에서 말한 Trap 중 하나.
시스템 호출 사용 이유 : 프로세스 실행, 종료나 I/O작업 등 사용자가 함부로 사용하면 안되는 명령들을 운영체제는 막아놓음
(커널모드, 사용자모드로 나눠서)
사용자들이 이와 같은 기능을 사용하기 위해 시스템 호출을 사용한다.
시스템 호출의 기능
1. 사용자 모드에 있는 응용 프로그램이 커널의 기능을 사용할 수 있도록 한다.
2. 시스템 호출을 하면 사용자 모드에서 커널 모드로 바뀐다,
3. 커널에서 시스템 호출을 처리하면 커널 모드에서 사용자 모드로 돌아가 작업을 계속한다.
( 커널은 내부적으로 각각의 시스템 콜을 구분하기 위해 기능별로 고유번호를 할당하고,
그 번호에 해당하는 제어루틴을 커널 내부에 정의해 놓는다.
커널은 요청받은 시스템 콜에 대응하는 기능번호를 확인해 그 번호에 맞는 서비스 루틴 호출하여 시스템콜을 처리한다.)
시스템 호출의 유형
1. 프로세서 제어(process Control)
2. 파일 조작(file manipulation)
3. 장치 관리(Device Management)
4. 정보 유지(Information maintenance)
5. 통신 (Communication)
4. 운영체제의 자원관리
자원관리 기능
1) 프로세스관리 : 프로세서(CPU)에서 실행되는 프로그램 관리
프로세스 상태 변이와 스케줄링
상호배제, 동기화, 교착상태 등 병행 프로세스
2) 메모리 관리 : 메모리 할당 및 회수
가상 메모리 운용
3) 입출력 관리 : 입출력 인터페이스, 입출력 제어, 입출력 스케줄링
4) 파일 관리 : 파일 및 디렉터리 생성 및 유지, 파일시스템, 파일보호
자원관리 과정 : 자원상태 파악 -> 자원분배정책 수립 -> 자원배당 -> 자원회수
5. 운영체제 구성 프로그램
1) 제어 프로그램
운영체제 시스템에서 가장 기본적인 시스템의 기능을 담당하는 프로그램
CPU, 메모리, 입출력 장치 등 여러 자원들의 관리를 담당하며, 3개의 프로그램으로 구성
① 감시 프로그램(Supervisor Program) : 제어프로그램 중 가장 중심이 되는 부분
프로그램의 실행과 시스템 전체의 동작 상태 감시, 관리
② 작업 제어 프로그램(Job Control Program) : 작업의 연속 처리를 위한 스케줄링 및 시스템 자원 할당 등 담당
③ 데이터 관리 프로그램(Data Management Program) : 주기억장치와 보조기억장치의 자료 전송 등
시스템에서 취급하는 파일과 데이터를 표준적인 방법으로 처리할 수 있도록 관리
2) 처리 프로그램
운영체제의 주 기능인 자원관리보다는 제어프로그램의 지시를 받아 사용자 문제를 해결하기 위한 프로그램
① 언어 번역 프로그램(Language Translator Program) : 컴파일러, 인터프리터, 어셈블러
② 서비스 프로그램(Service Program) : Sort/Merge, 유틸리티, 라이브러리
'학교 수업 > OS' 카테고리의 다른 글
OS의 메모리관리2 (0) 2020.05.09 OS의 메모리 관리 (0) 2020.05.08 Deadlock (0) 2020.05.07 OS의 process synchronization? (0) 2020.05.05 OS의 process scheduling (0) 2020.05.03