CS/운영체제 / / 2018. 5. 21. 15:32

[정보처리기사] 운영체제 정리 (1)

글에 앞서...


이 글은 정보처리기사의 운영체제 과목에서의 내용을 키워드 중심으로 정리한 글입니다. 해당 과목의 내용을 다시 상기시키고 앞으로 볼 필기 시험 전에 내용을 정리하고자 작성합니다. 이 글 이후로는 OS 과목에서 시험이나 면접에 출제될 만한 내용을 바탕으로 하나의 주제를 선정하여 작성할 예정입니다. 저처럼 키워드 중심으로 내용을 정리하고 싶은 분들에게 도움이 되었으면 좋겠습니다.


아래 언제나 휴일 블로그에서 제가 생각하는 중요내용에 살을 붙여 정리했습니다.

출처 http://ehpub.co.kr/ (언제나 휴일)



1. 운영체제 (OS, Operating System)

  • 운영체제 : 컴퓨터 시스템을 관리하는 시스템 소프트웨어로 컴퓨터의 CPU, 메모리 및 주변 장치를 관리하여 응용 프로그램이 동작할 수 있는 환경을 제공합니다.
    1. 성능 평가 기준
      1. 처리 능력(Throughout)
      2. 반환 시간(Turn Around Time)
      3. 사용 가능도(Availability)
      4. 신뢰도(Reliability)
    2. 기능
      1. 프로세스 관리한다.(프로세스 생성과 제거, 중지 및 재수행 등)
      2. 프로세서, 기억장치, 입출력장치 등의 자원관리한다.
      3. 자원의 스케줄링 기능 제공한다.
      4. 사용자와 시스템 간의 편리한 인터페이스를 제공한다.
      5. 시스템의 각종 하드웨어 네트워크 관리, 제어
      6. 시스템의 오류 검사 및 복구, 데이터 관리, 데이터 및 자원 
    3. 종류
      1. Windows, MS-DOS, UNIX, Linux
  • 시스템 소프트웨어 : 응용 소프트웨어를 실행하기 위한 환경을 제공하고 컴퓨터 시스템을 동작시키는 소프트웨어이다.
    • 운영체제, 장치 드라이버, 컴파일러, 어셈블러, 링커, 라이브러리 등이 있습니다.

2. 운영체제 운용 기법

  1. 일괄 처리 (Batch Processing, 1세대)
    • 일정 기간 또는 일정량의 데이터를 모아서 한꺼번에 처리하는 방식이다.
    • 효율이 높다.
    • 시스템 자원을 독점하여 CPU 유휴 시간이 줄어든다.
    • 사용자 측면에서는 처리량이 많아 반환 시간이 늦다.
  2. 다중 프로그래밍 (Multi Programming, 2세대)
    • 하나의 CPU와 주기억장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식이다.
    • 하나의 주기억장치에 2개 이상의 프로그램을 기억시켜 놓고, 하나의 CPU와 대화하면서 동시에 처리한다.
  3. 시분할 (Time Sharing, 2세대)
    • CPU의 전체 사용 시간을 작은 작업 시간량(Time Slice)로 나눠 그 동안만 번갈아 가면서 CPU를 할당하여 각 작업을 처리한다.
    • 라운드 로빈(Round Robin) 방식이라고도 한다.
    • 다중 프로그래밍 방식과 결합하여 모든 자겁이 동시에 진행되는 것처럼 대화식 처리가 가능하다.
  4. 다중처리 (Multi Processing, 2세대)
    • 여러 개의 CPU와 하나의 주기억장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식이다.
    • 하나의 CPU가 고장나더라도 다른 CPU를 이용하여 업무를 처리할 수 있으므로 시스템의 신뢰성과 안전성이 높다.
  5. 실시간 처리 (Real Time, 2세대)
    • 데이터 발생 즉시 처리하여 결과를 산출하는 방식이다.
    • 처리시간이 짧고 처리 비용이 낮다.
    • 자동 항법 장치나 전화 교환장치의 제어등에 사용된다.
  6. 다중 모드 (Multi Mode, 3세대)
    • 일괄 처리 시스템, 시분할 시스템, 다중 처리 시스템, 실시간 처리 시스템을 한 시스템에서 모두 제공하는 방식
  7. 분산 처리(Distributed Processing, 4세대)
    • 여러 개의 컴퓨터(프로세서)를 통신 회선으로 연결하여 하나의 작업을 처리하는 방식
    • 각 단말장치나 컴퓨터 시스템은 고유의 운영체제와 CPU, 메모리를 가지고 있다.

3. 링커 / 로더

  • 링커 : 컴파일러에 의해 번역된 목적 프로그램과 라이브러리 등을 연결하여 실행 가능한 로드 모듈을 만드는 시스템 소프트웨어이다.
  • 로더 : 보조기억장치로부터 주기억장치에 적재하는 시스템 소프트웨어이다.
    1. 기능
      1. 할당(Allocation)
      2. 연결(Linking)
      3. 재배치(Relocation)
      4. 적재(Loading)
    2. 종류
      1. Compile And Go 로더
      2. 절대 로더 (Absolute Loader)
      3. 직접 연결 로더 (Direct Linking Loader)
      4. 동적 적재 로더 (Dynamic Loading Loader)

4. 프로세스 (Process) ()

  • 프로세스 정의
    • 실행 중인 프로그램
    • 프로세서가 할당되는 실체, 프로시저가 활동중인 것
    • 운영체제가 관리하는 실행 단위
    • 비동기적 행위를 일으키는 주체
    • PCB를 가진 프로그램
  • 장점
    1. 병렬 환경에서 데이터가 안전하다.
  • 단점
    1. 자원 소모가 크다
    2. 문맥 교환이 느리다.
    3. 자원 공유를 위해 특별한 작업 처리해야 한다.
  • 참고사항
    • Process와 Thread의 차이는 부모 프로세스와의 자원 공유 유무이다.
    • 프로세스는 부모 프로세스와 자원을 공유하지 않는다.
      • 자식프로세스는 생성될때 부모 프로세스의 text 영역을 제외한 stack, heap, data 영역의 값들을 모두 복사해서 할당한다.
      • 스레드는 heap, data, text 영역을 공유하고 자기 자신의 stack영역을 사용한다.
      • 시스템 콜
        1. Process : fork(), vfork()
        2. Thread : clone(), pthread()
  • PCB(Process Control Block) : 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳
    • 각 프로세스가 생성될 때마다 고유의 PCB가 생성되고, 프로세스가 완료되면 PCB가 제거된다.
    • PCB에 저장되어 있는 정보
      1. 프로세스의 현재 상태
      2. 포인터(부모 프로세스에 대한 포인터, 자식 프로세스에 대한 포인터, 프로세스가 위치한 메모리에 대한 포인터 등..)
      3. 프로세스 고유 식별자(ID)
      4. 스케줄링 및 프로세스의 우선순위
      5. CPU 레지스터 정보(누산기, 인덱스 레지스터, 프로그램 카운터)
      6. 주기억장치 관리 정보

5. 스레드 (Thread) ()

  • 스레드의 정의
    • 하나의 프로세스 내에서 병행성을 증대시키기 위한 메커니즘으로 시스템의 자원을 할당받아 실행하는 프로그램의 단위이다.
    • 독립적인 스케줄링의 최소 단위, 동일 프로세스 환경에서 서로 독립적인 다중 수행이 가능하다.
    • 하나 이상의 스레드가 존재할 경우, 다중 스레드라고 한다.
    • 프로세스의 일부 특성을 갖고 있기 때문에 경량 프로세스라고도 한다.
    • 스레드는 독립된 제어 흐름을 가지며, 고유의 레지스터와 스택을 사용한다.
  • 스레드의 장점
    1. 하나의 프로세스를 여러 개의 스레드로 생성하여 병행성을 증진시킬 수 있다.
    2. 응답 시간을 단축시킬 수 있다.
    3. 실행 환경을 공유시켜 기억장소 및 자원의 낭비가 줄어든다.
    4. 공통적으로 접근 가능한 기억장치를 통해 효율적으로 통신한다.


'CS > 운영체제' 카테고리의 다른 글

[정보처리기사] 운영체제 정리 (2)  (0) 2018.05.21
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유