Sqix

CS - OS - 01. 운영체제의 큰 틀 이해 본문

CS/OS

CS - OS - 01. 운영체제의 큰 틀 이해

Sqix_ow 2021. 11. 15. 21:23

운영체제(Operating System, OS)의 역할 : 시스템의 자원*을 관리하는 관리자

*시스템 자원 = 컴퓨터의 하드웨어( CPU / Memory / I/O / Disk 등)

운영체제의 역할

시스템 자원의 분배

  • 각 프로세스마다 CPU를 얼마나 사용하도록 할 지에 대한 분배
  • 프로그램이 Memory의 어떤 주소에 어느 정도의 공간을 활용해서 저장할지에 대한 분배
  • 프로그램을 어디에 저장할지에 대한 결정
  • I/O 장치의 입력에 대한 처리와 입력된 신호에 대한 출력 처리 결정

컴퓨터 하드웨어와 응용프로그램 제어

  • 응용프로그램의 실행과 동작에 대한 관리
  • 프로세스 / 메모리 / 파일 / 디스크 / 입출력에 대한 관리
  • 네트워킹 제어와 컴퓨터 보호(보안)
  • 컴퓨터 하드웨어의 동작에 대한 제어

사용자와 컴퓨터 간의 의사소통 지원

응용프로그램 (App)

응용프로그램과 운영체제의 관계

  • 응용프로그램의 정의 : 사용자 혹은 프로그램에게 특정한 기능을 수행하도록 설계 / 제작된 프로그램
  • 통상적으로 운영체제 위에서 동작하는 프로그램들을 응용프로그램이라고 한다
  • 운영체제와 응용프로그램
    • 운영체제는 응용프로그램의 실행/종료를 관리한다.
    • 운영체제는 응용프로그램간의 권한(접근 권한)을 관리한다.
    • 운영체제는 응용프로그램의 사용자를 관리한다.
    • 운영체제는 응용프로그램에게 적절한 시스템 리소스를 분배한다.

시스템 리소스의 분배

자원 분배의 과정

  • 응용프로그램이 운영체제에 리소스 요청
    • 요청된 메모리에 대한 허가 / 분배
    • 요청된 CPU 사용 시간 제공
    • 요청된 I/O 장치 사용 허가 / 제어
  • 운영체제는 적절한 리소스를 할당
  • 사용 기한이 다 되면 리소스 회수

운영체제가 제공하는 인터페이스

UI(User Interface)

    • 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공하는 프로그램
    • CLI(터미널 환경)와 GUI(그래픽 환경)로 구분된다.
    • 운영체제가 제공하는 API를 기반으로 쉘이 만들어지고, 이를 통해 운영체제에 대한 사용자의 요청에 맞는 기능을 제공함.

API(Application Programming Interface)

  • 응용 프로그램을 위한 인터페이스
  • 함수 형태로 제공되며, 보통은 이러한 함수들을 묶은 라이브러리의 형태로 제공된다.
  • 대부분의 API는 SYSCALL을 호출하는 함수를 작성해 놓은 형태로 이루어짐.

SYSCALL

  • 시스템 호출 인터페이스
  • User 공간의 프로그램들이 운영체제의 기능을 이용한 요청을 처리할 수 있도록 제공되는 C언어 함수

CPU Protection Rings

CPU의 권한

- 사용자 모드(주로 Ring 3) : 일반 유저 모드. 

- 커널 모드(Ring 0) : 특권 명령어 실행과 원하는 작업 수행을 위한 작업 접근을 가능하게 하는 모드. 

- Ring 1,2는 운영체제의 서비스를 위해 사용(드라이버 등)되나 Windows, Linux에선 딱히 사용되진 않는다.

 

Ring 0 : 커널, Ring 3 : 어플리케이션, Ring 1/2 : 장치 드라이버

APP과 OS

 

- 하드웨어, I/O 장치, 네트워크에 접근해야 하는 경우 APP은 OS에 시스템 콜을 통해 기능 실행을 요청한다.

- 시스템 콜은 운영체제에서 제공된다.

 

정리

■ 운영체제는 컴퓨터 하드웨어와 응용프로그램을 관리
■ UI 제공을 위해 쉘 프로그램을 제공
■ 응용프로그램이 운영체제 기능을 요청할 수 있도록 하기 위해서 운영체제는 시스템 콜을 제공
- 보통 시스템콜을 직접 사용하기보다, 각 언어별 API에서 제공하는 시스템 콜을 이용해서 만든 함수들을 활용한다.

- 응용프로그램은 필요 시 API를 이용해서 해당 기능을 호출한다.

- 평소 유저 권한으로 실행되는 응용프로그램이 운영체제 기능이 필요한 API를 호출하면,
  시스템 콜이 호출되어 커널 권한으로 명령이 실행된 뒤 다시 응용프로그램으로 돌아간다.

 

'CS > OS' 카테고리의 다른 글

CS - OS - 06. Thread  (0) 2021.11.23
CS - OS - 05. Inter Process Communication(IPC)  (0) 2021.11.19
CS - OS - 04. 프로세스와 컨텍스트 스위칭  (0) 2021.11.19
CS - OS - 03. 인터럽트  (0) 2021.11.18
CS - OS - 02. 프로세스 스케쥴링  (0) 2021.11.16
Comments