본문 바로가기

프로그래밍/이론정리

운영체제 #1

운영체제 개요

운영체제란?
  확장된 머신기능과 자원관리를 제공하는 S/W
  - 하드웨어의 제어를 쉽게 해주는 기능.
  - 프로세서, 메모리, I/O 등의 자원을 관리하는 기능.

주요한 내용은?
  1. 스케줄링, 교착상태, 메모리관리
  2. 파일시스템, 멀티프로세서, 보안


프로세스, 스레드
프로세스란 간단히 말하면 수행되고 있는 프로그램이다. 한 순간에는 오직 하나의 프로세스만 수행될 수 있지만, 시간이라는 개념을 쪼개어 동시에 여러개의 프로세스들이 수행될 수 있게 된다(멀티태스크, 멀티프로세스). 실제로 운영체제는 하나의 주소공간과 하나의 제어 스레드만으로 동작한다. 여러 프로세스들이 이 주소공간과 제어 스레드를 돌아가면서 사용하여 동시에 여러 프로세스가 실행되고 있는 것처럼 느껴진다.
스레드는 프로세스의 동작을 여러개의 소규모 동작으로 나눈것인데, (프로세스의 개념과 유사하게) 프로세스가 획득한 자원을 돌아가며 사용하는 것이라 할 수 있겠다. 프로세스는 OS의 주소영역(메모리), 디스크, 프린터 등을 돌아가며 사용하며, 스레드는 프로세스의 주소공간 오픈파일, 전역변수 등을 돌아가며 사용한다. 실제로 스레드를 사용하지 않는 프로세스도 하나의 스레드로 이루어져 있는 것이다. 스레드를 사용하는 이유는 주소공간을 공유하기 위함, 생성과 소멸이 용이함, 계산과 I/O가 연속될 때의 성능향상, 다중 CPU에서의 병렬처리 등이 있다.

수행중인 프로세스는 실행, 블록, 준비의 세가지 상태를 가지게 된다. 운영체제는 수행중인 프로세스를 관리하기 위해 프로세스 테이블을 유지한다. 일부 저자들은 이를 프로세스 제어 블록(Process Control Block)이라고 부른다. PCB는 프로세스 상태, 프로그램 카운터, 스택 포인터, 메모리 할당, 오픈 파일의 상태, 계수기 등의 프로세스 실행을 위한 모든 정보를 저장한다.







Tip.
Charles Babbage
  최초의 디지털 컴퓨터(실패) 해석엔진 설계자
  컴퓨터의 기본개념을 정립
  프로그래머의 필요성을 깨닫고 Ada 고용

Ada Lovelace(1815-1852)
  최초의 프로그래머, 영국시인 Lord Byron의 딸, 자궁암으로 36세로 사망
  Babbage의 해석엔진을 통해 Loop, If, Subroutine, Go to의 개념을 정립
  미국방성에서는 Ada를 기리기 위해 1983년 프로그램언어를 Ada라고 함
  참고로 lovelace는 난봉꾼, 색마란 뜻 -.ㅡ;

'프로그래밍 > 이론정리' 카테고리의 다른 글

정렬알고리즘 정리  (0) 2011.03.01
네트워크 이론정리  (0) 2011.02.07
운영체제 #4 - 메모리 관리  (0) 2010.11.15
운영체제 #3 - 교착상태  (0) 2010.11.06
운영체제 #2 - 스케줄링  (0) 2010.11.01