운영체제 개요

sun202x·2023년 1월 12일
0

운영체제

목록 보기
1/23
post-thumbnail

해당 게시글은 kocw에서 제공하는 금오공과대학교 최태영 교수님의 무료 강의를 공부하고 정리하기 위해서 만들어졌습니다.

역할

  • 자원할당
  • 제어
  • 사용자가 사용하기 편하게 제공
  • 자원관리
    • 다수의 사용자가 붙어있을 경우
    • 배터리 관리

커널(kernel)

  • 운영체제의 핵심
  • 컴퓨터가 켜지고 꺼지기 전까지 실행되는 프로그램
  • 때로는 cd rom에 들어가 있는 패키지 자체를 운영체제 라고도 한다.
    • 이 cd rom 패키지 작은 한 부분을 커널 이라고 한다.
    • 그리고 나머지 부분을 system program 이라고 한다.
    • 이외 밖에서 동작하는 것을 Application program이라고 한다.
      • 웹에서 다운받아서 설치되는 것들

bootstrap program(computer startup)

  • 메모리에 올라와야 프로그램이 실행된다고 할 수 있음
    • 하드디스크에 복사된 os 패키지에서 커널을 메모리에 올려서 실행해야함
  • 이 것을 bootstrap program 이라고 한다.
  • bootstrap program은 두 부분으로 나눠진다.
  • rom안에 bootstrap program이 존재
    1. 하드 디스크의 0번 블럭을 읽어서 메모리에 올리는 역할을 수행
    • 이 때 메모리의 program counter(PC)가 0번 블럭을 가리킨다.
    • 0번 블럭은 커널을 읽어서 메모리에 올리는 역할을 한다.
    1. 어플리케이션을 하나 띄운다.
    • windows: ba shell(bash)
    • linux: gui exploror
  • 이후에 사용자 입력을 기다린다.

PC(program counter)는 다음에 수행될 명령을 가리킨다.

운영체제와 하드웨어

  • 하드웨어와 운영체제 사이에는 버스(bus)라는 통로가 존재
    • 이 통로를 통해서 cpu가 메모리에 있는 결과를 계산하고 계산된 결과를 메모리에 저장한다.
  • 하드웨어와 연결된 I/O를 연결하기 위해 마이크로 프로세스(메모리)를 사용
    • 컨트롤러안에 존재
    • 입력을 저장하기 위해 사용
    • 성능이 많이 떨어짐
    • 이것을 local buffer라고 부른다.
    • local buffer가 다 차면 버스를 통해 메모리에 저장한다.
    • 이것을 통해 병렬적으로 처리할 수 있게 된다.
  • 작업 수행을 마쳤는지 확인하기 위해 cpu는 인터럽트(interrupt)방식을 사용한다.
    • 수행을 마쳤을 때 이것을 알리는 것
    • 각각의 컨트롤러가 수행을 마쳤을 때 cpu로 알려준다.
    • 인터럽트가 걸리면 cpu는 local buffer 안의 내용을 메모리에 옮긴다.
  • cpu가 인터럽트를 처리하는 것을 interrupt handling이라고 한다.
    • 이 때 수행되는 것은 memory copy이다.
  • 하드웨어가 인터럽트를 발생시키기 위해 메모리에 interrupt vector라는 배열을 만들어서 처리한다.
    • 4 byte로 이루어져 있으며,
    • interrupt handler 루틴 들의 주소가 저장된다.
    • 각 주소는 interrup handler 가 들어있다.
  • 인터럽트 시나리오
    • 명령이 하나 실행된다.
    • 명령어 실행 도중 인터럽트가 하나 발생
      • 각 디바이스는 번호가 정해져 있다.
    • 하드웨어의 인터럽트 플래그가 1로 변경된다.
    • 명령이 수행되고 나서 cpu는 각 하드웨어의 인터럽트 플래그가 세워진게 있는지 확인
    • 인터럽트 플래그가 세워져 있으면, 다음 수행될 PC를 저장한다.(특정 레지스터)
    • 몇번 하드웨어에서 인터럽트가 발생했는지 확인한다.
    • 메모리의 인터럽트 벡터에 해당 하드웨어 번호의 주소를 가져온다.(인터럽트 핸들러 주소)
    • 저장이 끝난 PC에 덮어쓴다.
    • 인터럽트 핸들러가 실행된다.
    • return program couner 명령어를 통해 특정 레지스터에 저장해 놓은 다음 명령을 PC에 복원시킨다.
  • 해당 시나리오를 통해 하드웨어적으로 인터럽트가 실행 되더라도 실질적인 수행은 소프트웨어를 통해서 이뤄진다는 것을 알고 있을 것
profile
긍정적으로 살고 싶은 개발자

0개의 댓글