김주균 저자의 OS? Oh Yes - 누워서 보는 운영체제 이야기를 토대로 개인적으로 정리를 한 것 입니다. 어느 상업적인 목적으로 작성하지 않았음을 알립니다.

OS

사용자 인터페이스와 자원관리를 위한 프로그램 집합

운영체제 변천사

1. 수동계산기

세무서 근무하는 아버지를 위해 만들었다는 파스칼

2. 자동계산기

MARK-1
배비지 - 해석장치
에이다

3. 1세대 운영체제

진공관 컴퓨터 시기
ENIAC - 세계 최초의 컴퓨터
EDISAC
UNIVAC-1
IBM 701 - 일괄처리 시스템
IBM 305

  • 일괄처리 시스템 : 다수 개의 프로그램을 읽어 저장해 놓되, 한 번에 한 개씩의 프로그램을 실행시켜 주는 방식

4. 2세대 운영체제

트랜지스터 컴퓨터 시기
UNIVAC-2
어셈블링 언어 등장 - FORTRAN, COBOL 등
다중 프로그래밍 시스템, 다중처리 시스템, 시분할 시스템, 대화식 시스템, 실시간 시스템 등장

  • 일괄처리 시스템 의 문제점 -> 한번의 한개의 작업을 처리해 준다는 것( 즉, 작업이 끝날때 까지는 중간에 개입을 할 수 없다. )
  • CPU가 노는 일(ex. 입출력이 이루어지고 있을때 CPU가 가만히 있는)이 없도록 하기 위해서 바로 다른 작업을 진행 할 수 있도록 하는 것( 즉, 후보 작업들이 여러 개 주기억 장치 에 있도록 해야한다. )

용어 설명
다중 프로그래밍 시스템 다수 개의 작업이 같이 주기억 장치에 있도록 한 방식
다중처리 시스템 여러 개의 처리장치를 장착하여 동시에 여러 작업을 병렬로 실행
시분할 시스템 CPU가 처리해 줄 수 있는 시간을 작업수에 나눠 일정량만큼 번갈아 가면서 처리하는 방식
대화식 시스템 장치를 통해 마치 대화 하듯이 일을 처리해 나가는 방식

5. 3세대 운영체제

집적회로(IC) 컴퓨터 시기
다중모드 시분할
TCP/IP
근거리 통신망(LAN)
UNIX

6. 4세대 운영체제

마이크로프로세서 컴퓨터 시기
개인용 컴퓨터 보급
분산 및 병렬 처리 시스템

OS안에는

  1. 쉘이라고 불리는 사용자 인터페이스
  2. 자원 관리 요소

    1. 장치관리 - 프린터, 모니터, 마우스, 키보드 같은...
    2. 파일관리 - 파일 생성, 삭제, 수정 같은...
    3. 메모리관리 - 그냥 진짜 메모리 관리...
    4. 처리기관리 - CPU의 처리 능력을 각 작업에 효과적으로 배분토록하는 부분

운영체제를 이루는 큰 두분류

커널

빈번히 사용되면서 빨리 실행이 돼야 하는 프로그램으로 주기억장치에 상주시키는 프로그램

유틸리티 프로그램(용량 때문에 주기억에 상주시키지 않는다.)

모든 운영체제 프로그램을 주기억장치에 상주를 시키게 되면 성능 저하를 가져오며, 메모리 낭비가 되어 버린다.

자주 사용되지 않는 부분으로 디스크에 두고 필요할 때만 잠시 주기억장치로 넣어 사용하고 다시 디스크로 보냄