학교/운영체제

[OS] 1. 운영체제 개요

daykim 2021. 9. 1. 19:30

운영체제

응용과 컴퓨터 하드웨어 사이에 위치하는 레이어

 

운영체제 역할

  • 프로그램의 구동 및 운영을 쉽게 할 수 있도록 함
  • 프로그램들이 자원을 공유할 수 있도록 함
  • 프로그램들이 디바이스와 interaction을 할 수 있도록 함

 

운영체제와 하드웨어

  • CPU : 입력된 데이터를 가지고 code (혹은 프로그램) 실행
  • Memory : 디스크로부터/에 코드와 데이터 읽기/쓰기 작업 수행
  • Disk(Storage) : 코드와 데이터를 반영구적으로 저장

위 협업에 운영체제가 직접 관여

 

운영체제 설계 목표

 

추상화 (Abstraction) 시스템을 사용 및 관리하기 쉽도록 함
성능 최적화 (Performance) - 효율성(Efficiency)
제한된 자원하에서 최선의 성능 도출
- 공정성 (Fairness)
특정 프로그램으로의 자원 할당 편중 방지, 자원 사용의 공정성
보호 (Protection) - 응용간의 할당 메모리 영역 침범 방지
- 특정 응용의 CPU 자원 독점 방지
- 특정 응용의 OS 권한 명령어 실행 방지
기타 보안 (Security)
신뢰성 (Reliability)
에너지 효율성
이동성


컴퓨터 시스템 구조

1) CPU 스케줄링

프로세스에게 CPU 시간 할당

  • Throughput(처리량) 최대화
  • Fairness 최대화

1. 멀티프로그래밍 / 멀티 태스킹 처리

  • 다중 사용자가 하나의 컴퓨터에서 응용처리를 수행하는 경우,
    자원 이용률 최대화 할 수 있도록 CPU 자원을 효율적으로 할당, 관리
  • 다중 프로세스가 하나의 컴퓨터 위에서 수행되는 경우 동시에 처리돼야함

2. 시분할(Time-sharing) 처리

  • 멀티태스킹 달성하기 위해 사용하는 기법
  • 임의의 길이를 가지는 시간 슬롯(Time slot)을 정의해 각 프로세스 혹은 각 스레드에 할당
  • 각 프로세스 혹은 각 스레드는 시간 슬록 만큼만 자원 점유
  • 할당된 시간이 지나면 점유된 자원은 다른 프로세스 / 스레드에게 사용권이 남겨짐
  • 시간 슬롯이 충분히 짧다면 각 프로세스는 자기 혼자 컴퓨터를 사용하는 것과 같은 효과 달성
  • 다중 프로세스가 동시에 처리되는 것처럼 간주됨
  • CPU와 I/O 장치간의 접근 속도 차이를 이용

 

2) 메모리 관리

  • 물리, 가상 메모리 주소 매핑
  • 페이징

Virtual memory 관리 방식

  • Physical memory 외에 각 프로세스를 위한 Virtual memeory 주소 공간 정의
  • OS는 Physical memory와 Virtual memeory 주소 공간 mapping
  • 프로세스는 Virtual memory에 가상적으로 적재되고,
    실제 사용되는 부분만 Physical memory에 실적재됨
  • Physical memeory에 적재되지 않는 부분은 디스크의 Swap area에 저장

 

3) I/O 관리

I/O는 CPU보다 느리다
  -> I/O처리 위해 프로세스가 대기하는 상황 발생할 수도 있다.
  -> 전체 시스템 저하가 발생할 수도 있다.
  -> 이걸 막기 위해 CPU 이용률(서버 자원 이용률) 최대화하는 효과 달성 위해 I/O 관리 수행

I/O 관리

  • 인터럽트를 이용한 I/O 처리 서비스 요청
  • 디바이스 컨트롤러가 인터럽트 발생 시 OS는 현 작업 상태 저장
  • CPU는 인터럽트 처리 루틴을 수행
  • 인터럽트 처리 완료 후 직전 수행중이던 작업을 재개

CPU 이용률 최대화

  • CPU의 계산 속도 : 초당 수십억개의 instructions 처리
  • I/O 접근 속도 : CPU와 비교해 수천배 이상 느림
  • CPU와 I/O 장치의 속도 차이를 고려한 스케줄링 수행

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

[운영체제] 2. 운영체제 구조  (0) 2023.01.09
[운영체제] 1. 서론  (0) 2023.01.07
[OS] 3. Operating System Structures  (0) 2022.05.24
[OS] 2-2. Computer Structures  (0) 2022.05.24
[OS] 2-1. 운영체제의 종류  (0) 2022.05.24