2장
1.1 운영체제의 정의
운영체제란?
- Operating System , 컴퓨터 하드웨어를 관리하는 프로그램
- Performance, Convenience
- 컴퓨터 하드웨어를 잘 관리하여
성능을 높이고
사용자에게편의성
제공 - 운영체제가 없는 컴퓨터는 길들여지지 않은 야생마와 같음
컴퓨터 구조
- 프로세서(CPU), ROM (Read Only Memory, 메인메모리), RAM(Random Access Memory , 휘발성), 하드 디스크, 입출력장치
- ROM 에는 컴퓨터 전원을 켰을대 디스크에 있는 운영체제 파일들을 찾아 RAM 으로 적재시키는 명령어가 있음 → 이를
boot
라고 함 -
부팅단계는 아래와 같다.
1단계 - POST(Power-On Self Test) -하드웨어 장치들에 대한 체크
2단계 - Boot loader: 메인 메모리(RAM)에 운영체제 적재, ROM 역할 끝
3단계 - 운영체제 환경 설정(세팅)
4단계 - 운영체제가 컴퓨터를 제어 시작, User Interface( Shell or GUI ) 로드
운영체제의 위치
- OS 커널: 하드웨어의 자원이 필요한 프로세스를 나눠주고, 메모리 제어 등 운영체제에 요구하는 시스템 콜등을 수행하는 부분
- Shell: 운영 체제에서 커널과 이용자 사이에 끼어서 이용자의 명령을 해석하고 그 처리 결과를 처리하는 시스템 프로그램.
- 운영체제는 정부와 비슷한 역할을 함
- 자원 관리자, 자원할당가 → OS 가 Application 에게 필요한 리소스들을 할당
- 프로세스 관리 > 메모리 관리 > 파일관리 > 입출력관리, 보안 네트워크 등
1.2 운영체제의 역사
- 1940 년대 말
- 하드웨어 발전 → 운영체제가 따로 없었음
- Batch processing system (일괄처리 시스템)
- 메모리안에 컴파일러, 메모리 적재 등과 같은 것을 넣어놓음
- 최초의 os
- Multiprogramming system (다중프로그래밍 시스템)
- 컴퓨터는 비싼 자원임
- 빠른 CPU, 느린 i/o
- 과거: I/O 가 일하는 동안 CPU 가 노는 문제가 있었음
- 따라서 I/O 가 일을하면 바로 CPU가 다른 작업을 하도록 변경
- CPU scheduling: 어떤 프로그램부터 실행시킬것인가에 대한 문제
- 메모리 관리
- 메모리 보호: 다른 사용자 메모리 또는 운영체제 영역 메모리 접근
- Time-sharing system (시공유 시스템)
- 강제 절환, 시분할 시스템, 대화형
- 한대의 컴퓨터에 터미널/단말기를 이용하여 모니터와 키보드만 연결 → 한대의 컴퓨터를 공유해서 사용함
- 한 유저에게 주어진 시간만큼만 자원을 실행시키고 그 시간이 지나면 다른 유저의 일을 진행함
- CPU 가 빠르게 switching 하기 때문에 유저입장에서는 바뀌고 있다는 것을 인식하지 못함
- 따라서 동시에 여러명의 유저가 사용할 수 있음 - 가상메모리: 하드디스크를 메인메모리처럼 사용하게 하는 것 - 프로세스간 통신 - 동기화: 여러개의 프로그램 중 어떤것을 먼저 할것인지
- 고성등 컴퓨터
1.3 고등 운영체제 (Advanced Computer Architectures)
다중 프로세서 시스템 (Multiprocessor system)
메모리는 하나이지만 CPU가 여러개인 것
- 병렬 시스템 (parallel system)
- 강결합 시스템 (tightly-copuled system)
- 장점
- performance
- cost
- reliability : cpu 하나가 고장나도 다른 cpu로 대체가능ㅈㅅ
분산 시스템 ( Distributed system)
- 다중 컴퓨터 시스템 (multi-computer system)
- 소결합 시스템 (loosely-coupled system): 메인메모리 공유를 하지 않음 LAN 으로 연결
→ 분산운영체제
실시간 시스템(Real-time system)
- 시간 제약 → 시간내에 실행하지 못하면 실패로 간주, 빠르다고 해결되는 것이 아님
- 공장 자동화, 군사 등에서 사용함
- 실시간 운영체제 (Real-time OS= RTOS)
1.4 인터럽트 기반 시스템 (Interrupt-Based System)
현재 신쟁중인 프로레스와 독립적으로 즉시 CPU가 처리해야하는 사건
- CPU는 인터럽트가 발생하면 운영체제 내에 있는 Interrupt Service Routin(ISR) 명령을 먼저 실행
- 인터럽트 서비스 루틴을 처리하고 나면 이전 상태로 복귀
하드웨어 인터럽트 (Hardware interrupt)
주변 장치로부터 발생된 전기적 신호에 의한 인터럽트
ex) 마우스 조작
소프트웨어 인터럽트 (Software interrupt)
사용자의 프로그램이 실행되는 과정에서 발생한 소프트웨어적인 인터럽트
ex) 파일저장, 프린트 명령
인터럽트 기반 운영체제
- 운영체제는 평소에는 대기 상태
- 하드웨어 인터럽트에 의해 ISR 실행
- 소프트웨어 인터럽트에 의해 ISR 실행
- 내부 인터럽트 에 의해 ISR 실행
- 내부 인터럽트: 안정된 시스템 동작을 위해 시스템 내부적으로 사전에 정의해 놓은 조건에 읳 ㅐㅏㄹ생되는 인터럽트
- ex) divide zero
- 외부 인터럽트: 사용자의 필요에 의해 발생된 인터럽트 대부분 입출력 관련 인터럽트가 많다.
- ISR 종료되면 원래 대기상태 또는 사용자 프로그램으로 복귀