운영체제 계층 구조

Rudy·2022년 12월 15일
1

운영체제 계층 구조를 갖는 이유

계층간 독립성 확보

사용자

  • OS나 HW에 대해 몰라도 응용프로그램으로 컴퓨터 활용

응용프로그램

  • 컴퓨터 HW의 종류나 구조, 제어 방법을 몰라도 개발 가능
  • 운영체제에게 요청하여 해결
  • 컴퓨터 HW 변경시 응용프로그램 재작성할 필요 없음

운영체제

  • 응용프로그램과 하드웨어 사이의 인터페이스
  • HW 장치와 관련된 모든 작업은 디바이스 드라이버에게 요청

운영체제 필요성

응용프로그램이나 사용자가 직접 HW를 제어해야 함

  • 하드웨어에 대한 지식, 충돌,관리,보안의 문제 발생함

충돌 사례

  • 동시에 2개 이상의 프로그램을 실행하고자 할 떄
  • 응용프로그램 실행으로 메모리가 필요할 떄
  • 동시에 프린터에 출력을 하려 할 떄
  • 데이터를 파일에 기록할 때

자원에 대한 충돌을 해결하고 성능 최적화, 사용자의 시스템 사용의 효율화

주요 기능

프로세스/스레드 관리

  • 실행, 일시 중지, 종료, 스케줄링, 컨텍스트 스위칭, 동기화

메모리 관리

  • 할당,반환,보호, 가상 메모리 등

파일 시스템 관리

  • CRUD ,이동 파일 보로

입출력 장치 관리

  • 장치 제어, 입출력(I/O)

사용자 인터페이스, 네트워킹

보호 및 보안

  • 외부 공격이나 무단 침입으로부터 보호

운영체제의 구성

커널(Kernel)

  • OS의 핵심 기능을 실행하는 코드와 데이터
  • 부팅 후 메모리에 상주, 좁은 의미의 OS
  • 커널 코드는 함수들의 집합으로 구성
  • app은 커널 기능을 이용하기 위해 시스템 호출 사용한다

툴(tool)/GUI

  • 사용자가 컴퓨터를 편리하게 사용할 수 있도록 제공

장치 구동기(device driver)

  • 장치를 제어하고 입출력
  • 각 장치 제작자에 의해 작성되고 배포됨

운영체제 커널 인터페이스

  • 하드웨어와 유저 간의 중계 역할 위해 제공

시스템 호출(sytem call)

  • 커널과 app 사이의 인터페이스, 시스템 호출 라이브러리를 통해 다양한 시스템 호풀 함수 제공
  • app이 커널 코드를 실행하기 위해

인터럽트(interrupt)

  • 커널과 HW 장치 사이의 인터페이스
  • 장치들이 입출력 완료/타이머 완료 등을 CPU에게 알리는 하드웨어적 방법
  • CPU는 하던 일을 중지하고,ISR 실행 후 재개
  • 장치들의 비동기적 이벤트 처리
profile
주니어 개발자

0개의 댓글