본문 바로가기
CS/Operating System

1-1. 운영체제와 컴퓨터 : 운영체제의 역할과 구조

by pizzz 2023. 1. 19.

운영체제(OS, Operating System)

사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스

한정된 메모리나 시스템 자원을 효율적으로 분배

*펌웨어(firmware) : 운영체제와 유사하지만 소프트웨어를 추가로 설치할 수 없는것

 

운영체제의 역할 4가지

1. CPU스케줄링과 프로세스 관리

: CPU소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원할당 및 반환을 관리

2. 메모리 관리 

: 한정된 메모리를 어떤 프로세스에 얼만큼 할당해야 하는지 관리

3. 디스크 파일 관리 

: 디스크 파일을 어떤 방법으로 보관할지 관리

4. I/O 디바이스 관리

: I/O 디바이스들인 마우스, 키보드와 컴퓨터 간에 데이터를 주고받는 것을 관리

 

운영체제의 구조

유저프로그램  
GUI
시스템콜 운영체제
커널
드라이버
하드웨어  
  • GUI ~ 드라이버 까지를 운영체제라고 지칭
  • GUI(그래픽 사용자 인터페이스)대신 CUI(명령어처리 인터페이스)만 있는 리눅스 서버도 존재

 

유저모드와 커널모드

'커널'에서 중요한 자원을 관리하기 때문에 일반 사용자가 접근하지 못하도록 유저모드와 커널모드를 구분

  • 커널
    • 운영체제의 핵심 부분으로서 시스템콜 인터페이스 제공
    • 보안/메모리/프로세스/파일 시스템 등 운영체제의 중추적인 역할 수행
  • 유저모드
    • 사용자가 접근할 수 있는 영역을 제한적으로 두고 프로그램의 자원에 함부로 침범하지 못하는 모드
    • 코드 작성, 프로세스 실행등의 행동 가능
    • 유저 어플리케이션 코드는 유저모드에서 실행된다!
  • 커널모드
    • 드라이버, 메모리, CPU등 모든 자원에 접근 및 명령 가능
    • 컴퓨터 내부에서 유저모드일 때와 비교할 수 없게 모든 것을 할 수 있음

 

시스템콜이란?

운영체제가 커널에 접근하기 위한 인터페이스

유저 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할 때 사용

 

유저 프로그램이 I/O요청으로 트랩(trap)을 발동하면 올바른 요청인지 확인 후 유저모드가 시스템콜을 통해 커널모드로 변환되어 실행

 

이를 통해

컴퓨터 자원에 대한 직접 접근을 차단할 수 있고 프로그램을 다른 프로그램으로부터 보호할 수 있음

 

  • 트랩 : 소프트웨어 인터럽트
  • I/O요청 : 입출력함수, 데이터베이스, 네트워크, 파일 접근 등에 관한 일

 

유저프로그램이 시스템콜을 통해 컴퓨터 자원 사용요청을 처리하는 과정 상세

  1. 유저프로그램이 컴퓨터 자원 사용 요청으로 트랩(Trap) 발동
  2. 올바른 요청인지 확인
  3. 올바른 요청일 경우 시스템콜 호출
  4. 시스템콜 호출에 따라 modebit가 1에서 0으로 변경(유저모드 -> 커널모드)
  5. 커널 모드에서 요청을 처리하는 로직 수행
  6. 처리 완료 후 modebit가 0에서 1로 변경(커널모드 -> 유저모드)
  7. 요청 이후의 유저 프로그램 로직을 이어서 수행
  • modebit
    • 시스템콜이 작동될 때 modebit을 참고하여 유저모드와 커널 모드를 구분
    • 1또는 0의 값을 가지는 플래그 변수 (0은 커널 모드, 1은 유저모드로 설정)
    • 카메라, 키보드 등 I/O 디바이스는 운영체제를 통해서만 작동해야 함
    • 유저모드를 기반으로 작동시키면 사용자의도와 관련없는 작동으로 연결될 위험이 있어 이를 막기 위해 운영체제를 이용

 

 

 

 

 

참고 https://velog.io/@oneul1213/CS-3%EC%A3%BC%EC%B0%A8-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C%EC%99%80-%EC%BB%B4%ED%93%A8%ED%84%B0

'CS > Operating System' 카테고리의 다른 글

1-2. 운영체제와 컴퓨터 : 컴퓨터의 요소  (0) 2023.01.19