STUDY/CS

[운영체제] 운영체제와 컴퓨터

ez1n 2023. 2. 4. 13:57

이화여자대학교 반효경 교수님의 운영체제 강의를 참고하였습니다.

 


운영체제

컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 SW와 HW를 연결하는 소프트웨어 계층

 

  • 좁은 의미의 운영체제 (커널) : 운영체제의 핵심 부분, 메모리에 상주
  • 넓은 의미의 운영체제 : 커널을 포함하여 각종 주변 시스템 유틸리티를 포함한 개념

 

# 분류

  1. 동시 작업 가능 여부 : 단일 작업, 다중 작업
  2. 사용자 수 : 단일 사용자, 다중 사용자
  3. 처리 방식 : 일괄 처리, 시분할, 실시간
💡 시분할 (time sharing)

컴퓨터 처리 능력을 일정한 시간 단위로 분할

💡 실시간 (realtime)

Deadline이 존재하여 정해진 시간 내에 반드시 종료되어야 함
⇒ Hard realtime system, Soft realtime system

 

# 목적

  1. 편리한 환경 제공
  2. 자원을 효율적으로 관리 (복잡한 하드웨어 관리) → 판단하는 능력
💡 편리한 환경

하드웨어적인 부분을 알지 못하덜도 프로그램 수행 가능
여러 프로그램을 동시에 각 컴퓨터에서 수행되는 것처럼 느끼게 해줌

💡 자원 : 메모리, CPU, I/O 장치 등

 

# 기능

  1. CPU 스케줄링
  2. 메모리 관리
  3. 디스크 스케줄링
  4. 인터럽트, 캐싱 ⇒ CPU, I/O 장치 간 속도차이 해결
💡 캐싱 : 중간단계를 두는 것(똑같은 데이터라면 메모리 어디다 저장하고 그 정보를 주는 것)
💡 인터럽트 : 요청한 디스크의 일이 다끝나서 알림을 cpu에 해주는 것

 

 

시스템 콜 & Mode bit

1. 시스템 콜 (System Call)

사용자 프로그램이 운영체제의 서비스를 받기위해 커널함수를 호출하는 것

 

  • 사용자나 프로그램은 직접 컴퓨터 자원에 접근할 수 없음
  • 직접 하드웨어 자원에 접근하거나 수정하려 하는 경우 데이터 손상이 일어날 수 있음 ⇒ 방지
💡 자원 : CPU, RAM, 보조기억장치 등 연산을 위해 필요한 장치들의 이용 가능한 공간

 

 

2. Mode bit

CPU가 기계어를 실행할 때, 실행하는 주체가 운영체제인지 사용자 프로그램인지 구분하는 장치

 

  • 보안 해칠 수 있는 중요 명령어에는 모니터 모드에서만 수행 가능한 ‘특권 명령’ 규정
  • 하드웨어적으로 두 가지 모드의 operation 지원 ⇒ 커널 모드, 유저 모드
💡 커널 모드는 0, 유저 모드는 1 로 정의함
💡 Interrupt, Exception이 일어나는 경우 유저모드에서 커널모드로 변경됨

💡 Exception : 권한이 없는 기계어를 실행하는 경우

 

 

컴퓨터의 요소

컴퓨터는 CPU, DMA 컨트롤러, 메모리, 타이머, 디바이스 컨트롤러 등으로 이루어짐

 

1. CPU (하드웨어)

  • 인터럽트에 의해 단순히 메모리에 존재하는 명령어를 해석해서 실행

 

 

2. 레지스터

  • CPU 안에 있는 매우 빠른 임시기억장치
  • 연산 속도가 메모리보다 수십 배에서 수백 배까지 빠름

 

 

3. 인터럽트

인터럽트 라인이 세팅되어 다음 기계어 실행 전 CPU 제어권을 자동으로 운영체제에 넘어가게 하는 것
** 현대 운영체제는 인터럽트에 의해 구동됨 **

 

  • 인터럽트 당한 시점의 레지스터와 프로그램 카운터를 SAVE한 뒤 CPU의 제어를 인터럽트 처리 루틴에 넘김
  • 하드웨어 인터럽트, 소프트웨어 인터럽트

 

 

# 하드웨어 인터럽트 (일반적인 인터럽트)

  • 하드웨어가 발생시킨 인터럽트
  • I/O 디바이스에서 발생하는 인터럽트

 

# 소프트웨어 인터럽트

  • 트랩(Trap)
  • Exception (프로그램 오류), System Call (커널 함수호출)

 

 

4. 타이머

일정시간 간격으로 인터럽트를 발생시킴 (CPU 제어권이 운영체제에 자동으로 넘어감)

 

  • time sharing 구현을 위해 사용되기도 함
  • CPU 독점 방지

 

 

5. DMA 컨트롤러 (Direct Memory Access)

I/O 디바이스가 메모리에 직접 접근할 수 있도록 하는 하드웨어 장치

 

  • 빠른 입출력 장치를 메모리에 가까운 속도로 처리하기 위해 사용
  • CPU 중재 없이 device의 buffer storage 내용을 메모리에 block 단위로 전송
  • block 단위로 인터럽트 발생 (바이트 단위 X)

 

 

6. 디바이스 컨트롤러

모든 I/O 장치들을 전담하는 일종의 작은 CPU

 

  • I/O : 실제 장치와 로컬버퍼 사이에서 일어남
💡 CPU → 디바이스 컨트롤러 : IO 작업요청
💡 디바이스 컨트롤러 → CPU : 인터럽트 발생 (작업 완료된 경우)

 

 

 

 

참고 도서
[주홍철] 면접을 위한 CS 전공지식 노트
[반효경] 운영체제 강의 - http://www.kocw.net/home/search/kemView.do?kemId=1226304