[OS] 운영체제(1장) 운영체제 소개 - 1
1. 운영체제란?
컴퓨터 사용자/응용 프로그램과 컴퓨터 하드웨어 사이에서 중재자 역할을 수행하는 것으로 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램
- 컴퓨터 하드웨어/자원을 관리
- 응용프로그램 수행을 제어
- 응용프로그램을 위한 기반을 제공
운영체제의 목표
-
편의성(convenience) : 사용자가 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공(특히 PC에 필요)
-
효율성(efficiency) : 컴퓨터 하드웨어를 효율적으로 사용하게 함(특히 서버용 컴퓨터에 필요)
-
진화 능력(ability to evolve) : 서비스를 방해하지 않고 새로운 기능을 효율적으로 개발, 검증, 추가할 수 있게 함
운영체제의 정의
보편적으로 인정되는 운영체제에 대한 완벽한 정의는 없다.
커널
커널은 운영체제의 일반적인 정의로 컴퓨터에서 항상 실행되는 프로그램으로 운영체제의 핵심 서비스를 담당한다.
미들웨어(Middleware)
미들웨어는 운영체제에 속하지 않은 응용프로그램 개발자에게 추가적인 서비스를 제공하는 소프트웨어 프레임워크 집합
모바일 운영체제
- “커널 + 미들웨어”형태로 제공
- (예) Apple IOS, Google Android
2. 컴퓨터 시스템 구성
컴퓨터 시스템의 구조
- 하나 이상의 CPU와 공유 메모리와 device controller가 common bus를 통해 연결됨
- Common bus를 통하여 CPU와 device controller는 공유 메모리 접근을 제공한다.
- CPU와 device가 동시에 수행되어 메모리 사이클을 경쟁할 수 있다.
장치 제어기(Device controller)
- 대개 특정 유형의 device 동작을 책임짐 - 오디오, 비디오, 디스크
- USB 제어기 - 다양한 device와 연결가능
과거의 컴퓨터 시스템 구조
CPU와 device controller가 동시에 수행되어 메모리 사이클을 경쟁할 수 있다.
현재의 컴퓨터 시스템 구조
USB와 같은 표준 제어가 사용 확대되어 전용 제어기 사용이 축소되었다.
컴퓨터 시스템 동작
Bootstrap Program
컴퓨터 전원을 켰을 때 또는 reboot될 때에 수행되는 initial program 대게 비휘발성 메모리인 ROM 또는 EEPROM에 저장됨 → firmware
Bootstrap Program의 동작
시스템의 모든 부분을 초기화
- CPU 레지스터,device controller, 메모리 내용 등 운영체제 적재 및 실행
- 운영체제 커널이 저장된 위치를 알고 있어서 메모리에 적재하고 적재된 운영체제를 실행시킴
Interrupts
Interrupt
- 하드웨어 또는 소프트웨어에 의해서 발생되어 CPU에 보내지는 신호
- 즉각적인 처리를 필요로 하는 event가 발생되었음을 알림
- CPU의 작업을 방해하는 신호
Interrupt 유형
- Hardware interrupt : 외부 입출력 장치에 의해서 발생(인터럽트 신호) ➔ anytime에 발생 가능
- Software interrupt : OS 서비스를 요청을 위해 SW에 의해서 발생 ➔ 특별한 instruction 사용
- Internal interrupt : SW실행 오류를 처리하기 위해 CPU 내부에서 발생 ➔ divide by zero, invalid memory access…
Interrupt 순서
CPU가 인터럽트를 받으면 현재 수행 중인 작업을 멈추고 인터럽트된 instruction의 주소를 저장하고 Interrupt service routine(ISR)의 주소를 찾아서 ISR 실행을 시작한다. ISR실행이 완료되면 저장된 return 주소로 되돌아가서 중단된 작업 재개
Interrupt Service Routine 주소 결정
Polled Interrupt
인터럽트 정보를 조사하기 위해 특정 위치에 있는 general polling routine 호출 이 루틴에서 장치를 polling하여 인터럽트 정보를 찾아서 interrupt-specific 처리 루틴을 호출
Vectored Interrupt
- 인터럽트 요청과 함께 unique number가 제공됨 → interrupt vector 번호
-
Interrupt vector table에 ISR의 주소들이 저장되며 unique number는 이 table의 index로 사용되어 ISR의 주소를 읽어서 해당 주소의 루틴을 호출
- 빠른 interrupt 처리가 가능 ← polling 과정이 없음
Polled Interrupt(폴링 인터럽트)와는 다르게 CPU가 인터럽트 발생을 주기적으로 체크하지 않아도 되기 때문에 시스템의 부하를 줄일 수 있다.
Storage 구조
주기억장치(Main Memory)
CPU는 주기억장치만 memory address를 사용하여 직접 접근 가능 → 실행할 프로그램이 주기억장치에 적재되어야 함 주 기억장치로 대개 DRAM을 사용한다.
Von Neumann 구조
프로그램(명령어)와 데이터가 주기억장치에 함께 저장됨
- 명령어를 주기억장치에서 fetch(가져와)하여 instruction register(명령 레지스터)에 저장
- 연산에 필요한 데이터를 주기억장치에서 읽는다.
- 명령어의 연산을 실행한다.
- 결과 데이터를 주기억장치에 저장한다.
주기억장치의 한계
모든 프로그램과 데이터를 주기억장치에 영구히 저장할 수는 없다. 이유 : 기억 용량 제한, 휘발성
보조 저장장치(Secondary storage)
- 기억용량이 큰 비휘발성 저장장치 제공 (large nonvolatile)
- 주로 hard disk drive(HDD)가 사용되며, 최근에 Flash 메모리 사용이 증가
- 대부분의 프로그램은 보조저장장치에 저장됨
캐싱(caching)
정보를 일시적으로 더 빠른 저장장치로 복사하는 것
- 캐시메모리 - 주기억장치 내용을 복사하는 빠른 메모리, 소프트웨어에게 보이지 않는다.
- 주기억장치는 보조저장장치의 캐시로 사용될 수 있다.
댓글남기기