CS | Network

[운영체제] 컴퓨터 시스템 계층 구조

seulll 2024. 9. 30. 19:39

컴퓨터 시스템이 계층 구조로 설계된 이유?

-계층 간의 독립성 확보를 위해(추상화)

  ‣ 사용자 : OS나 하드웨어에 대한 지식이 없어도 응용 프로그램으로 컴퓨터 활용 가능

  ‣ 응용 프로그램 개발자 또는 응용 프로그램

     : 장치 타입이나 구조, 제어 방법을 몰라도 개발 가능

       컴퓨터 하드웨어가 바뀌어도 응용프로그램 다시 작성할 필요 없음

‣ 운영체제

      : 장치 관련된 모든 작업을 디바이스 드라이버에게 요청

       응용프로그램과 하드웨어 사이 인터페이스 역할

 

사용자에 대한 운영체제의 역할

- 사용자가 하드웨어에 관한 지식이 없어도 컴퓨터를 다루기 용이하게 함

- 사용자에게 컴퓨터 시스템을 사용할 편리한 인터페이스 제공

- 컴퓨터의 사용을 돕는 여러 도구 응용프로그램(유틸리티) 제공

    >> Windows의 파일탐색기와 작업관리자, 리눅스의 쉘

- 사용자 계정 관리

- 사용자의 컴퓨터 사용 시간 계산

 

응용프로그램에 대한 운영체제 역할

- 응용 프로그램이 직접 하드웨어 다루지 못하도록 차단

    >> 응용 프로그램들 간 하드웨어 사용 충돌 막기 위해

- 응용프로그램이 하드웨어 사용하고자 할 때

    >> 반드시 운영체제에게 요청 (System call)

- 응용프로그램과 하드웨어 사이 인터페이스 (하드웨어 추상화)

 

하드웨어에 대한 운영체제의 역할

- 하드웨어 자원 사용에 대한 충돌 해결 및 성능 최적화

- 하드웨어 자원 접근

  -   응용프로그램에서 printf(“hello”) → 디스플레이 장치에 “hello”를 출력하는 일은 운영체제가 함

   -   응용프로그램에서 scanf()  →  키보드로부터 문자를 입력 받는 일은 운영체제가 함

 

• 운영체제와 커널

운영체제 소프트웨어 구성 : 유틸리티/GUI SW, 라이브러리, 커널, 디바이스 드라이버

 

 

유틸리티 소프트웨어

사용자가 컴퓨터를 편리하게 사용, 관리할 수 있도록 설계된 프로그램

ex) 쉘, 탐색기, 명령창, 작업 관리자 등

 

라이브러리 소프트웨어

특정 부분 기능만 수행하도록 미리 작성되어진 프로그램 모음

 

① 표준 라이브러리

- 응용 프로그램에서 자주 활용되는 기능으로 커널의 기능과 일차적으로 무관한 작업을 수행하는 프로그램 모음

- 시스템 호출 함수를 래핑함

 

② 시스템 호출 라이브러리

- 응용프로그램이 커널 코드를 불러 활용할 수 있도록 제공하는 프로그램 모음

- 하드웨어 직접 호출

 


 

커널

- 운영체제의 핵심 기능을 구현한 부분, 좁은 의미의 운영체제

- 부팅 후 메모리에 상주하는 코드와 데이터

- CPU, 메모리 등 컴퓨터 자원을 직접 제어하고 관리하는 코드와 자료 구조들

- 커널 코드는 함수들의 집합

- 커널 기능을 이용하려면 응용프로그램은 반드시 시스템 호출(system call) 사용

 

디바이스 드라이버

- 장치를 직접 제어하고 입출력하는 프로그램

- 장치마다 전담 디바이스 드라이버가 있음

- 일반적으로 장치 제작자에 의해 작성되어 배포됨

- ex) 키보드 드라이버, 디스크 드라이버, SCSI 드라이버, 마우스 드라이버, 그래픽 드라이버, 네트워크 드라이버, USB 드라이버 등

 

• 커널 인터페이스

커널이 제공하는 2개의 인터페이스 존재

 

① 시스템 호출

커널과 응용프로그램 사이 중계 역할

응용 프로그램에서 커널 기능을 사용할 수 있는 유일한 방법

시스템 호출 라이브러리 통해 다양한 시스템 호출 함수 제공

- read()함수에 의해 시스템 호출이 일어나는 과정

 

② 인터럽트

- 커널과 하드웨어 사이 중계 역할

- 장치들이 입출력 완료, 타이머 완료 등을 CPU에게 알리는 하드웨어적 방법

   >> 인터럽트를 알리는 하드웨어 신호가 직접 CPU에게 전달

- 인터럽트 발생 시

    CPU는 하는 일 중단하고 인터럽트 서비스 루틴(ISR) 수행

    ISR은 대부분 디바이스 드라이버 내에 존재

    ISR은 커널 영역에 적재

    ISR의 수행을 마치면 하던 작업 계속

-인터럽트 활용

운영체제가 장치에게 지시한 입출력 작업의 완료, 예고 없는 네트워크 데이터의 도착, 키보드나 마우스의 입력, 부족한 배터리 경고 등 장치와 관련된 모든 이벤트 처리

 

 


 

 

참고문헌