CS - 운영체제 기초

김종민·2023년 3월 11일
0

운영체제의 역할

  1. 프로세스 관리
  2. 메모리 관리
  3. 하드웨어 관리
  4. 파일시스템 관리

커널

  • 커널은 메모리와 프로세스, 저장장치를 관리한다.
  • 사용자는 인터페이스 (GUI,CUI)로 접근 가능하다.
  • 어플리케이션은 시스템콜을 통해서 커널에 접근 가능하다
  • 하드웨어는 드라이버를 통해 커널에 접근한다.(ex. 그래픽 드라이버)

CPU 구조

  1. 산술논리 연산장치

    • CPU의 실제 데이터 연산을 담당
  2. 제어장치

    • 모든 장치들을 제어한다.
  3. 레지스터

    • CPU내에서 계산을 위해 임시로 보관하는 장치이다.

프로세스

  • 일반 어플리케이션이 실행되어 메모리영역에 올라가 실행되는 경우 프로세스라한다.

  • 프로그램은 하드디스크에 저장되어 수동적이지만, 프로세스는 다양한 처리를하여 능동적이다.

  • 프로세스의 구조(구성)

    1. Code
      • 프로세스가 실행되는 코드가 저장되어있다.
    2. DATA
      • 전역변수와 정적변수가 저장되어있다.
    3. HEAP
      • 프로그래머가 런타임 시 할당할 수 있는 메모리공간이다.
    4. STACK
      • 지역변수와 함수 호출 시 필요한 정보가 저장되어있다.
  • 프로세스가 만들어지면 운영체제는 프로세스의 정보를 가지고 있는 PCB(Process Control Block)을 만들고 저장한다. 이들은 연결리스트(Linked List)로 저장된다.

  • 프로세스가 종료되면 해당 PCB를 제거한다.

  • 여러 프로세스가 공유자원을 사용하는 코드영역 임계구역이라한다.

  • 공유자원을 사용하는 경우 동기화방법으로 문제를 해결한다.

  • 공유자원에 인해 교착상태(데드락)가 발생한다.

프로그래밍 / 프로세싱

  1. 유니프로그래밍
    • 메모리에 프로세스가 1개만 올라와 있음
  2. 멀티프로그래밍
    • 메모리에 여러 프로세스가 올라와 있음
  3. 멀티프로세싱
    • CPU가 여러개의 프로세스를 처리하는 것
    • 시분할 시스템으로 CPU가 여러개의 프로세스를 돌아가면서 처리한다.(여러개의 프로세스를 동시에 처리하는것이 아님)
    • 시분할 처리를 위한 다섯가지 상태
      1. 생성
        • PCB를 생성 후 메모리에 프로그램 적재를 요청한다.
      2. 준비
        • 메모리에 프로그램이 적재된 후 CPU사용을 기다린다.
        • CPU 스케줄러에의해 CPU를 할당받는다.
      3. 실행
        • CPU를 할당받아 실행된다.
      4. 대기
        • 프로세스가 입출력을 요청하면 해당 수행을 기다리는 상태
      5. 완료
        • 프로세스가 종료

CPU 스케줄링 알고리즘

  1. FIFO
    • 블로킹으로 작동
  2. SJF
    • 작업시간이 짧은 작업부터 우선실행
  3. RR
    • 프로세스에 일정 시간(타임슬라이스)을 할당하고 해당 시간이 지나면 가장 후순위로 돌려보낸다.
    • 타임슬라이스를 너무 짧게해당하면 컨텍스트 스위칭이 자주 발생하여 오버헤드가 커지는 상황이 발생할 수 있다.
  4. MLFQ
    • 타임슬라이스를 초과하는 프로세스는 다음 실행 시 타임슬라이스를 늘려준다.

메모리

  • 메모리 관리자(가상메모리)는 메모리영역과 하드디스크의 스왑영역에 프로세스들을 저장시키고 스왑시켜 메모리를 관리한다.
profile
개발을 합시다 :)

0개의 댓글