본문 바로가기
CS 지식/운영체제

[운영체제] 운영체제란 & 운영체제의 구조

by CSEGR 2024. 8. 19.
728x90

✔️ 운영체제란?

운영체제(OS, Operating System)하드웨어 자원을 관리하고, 컴퓨터 하드웨어와 응용 프로그램 사이를 중재하는 인터페이스이다. 
  • 컴퓨터 하드웨어를 관리하고 컴퓨터 시스템의 자원들을 효율적으로 관리함
  • 즉, 운영체제(OS)는 사용자가 컴퓨터를 편리하고 효율적으로 사용할 수 있도록 환경을 제공하는 시스템 소프트웨어 이다.
  • 대표적인 예시로는 Window, Mac OS, Unix, Linux, Android, iOS가 있다. 

운영체제


✔️ 운영체제의 역할 및 목적

  1. 인터페이스 제공
    하드웨어 인터페이스와 사용자 인터페이스를 제공하여 편리하게 사용하도록 지원
  2. 자원 관리
    CPU, Memory, I/O 장치와 같은 하드웨어 자원과 파일 메세지, 프로세스 등의 소프트웨어 자원 ,즉 컴퓨터 시스템 자원을 효율적으로 관리 
    • CPU 스케쥴링과 프로세스 관리 : CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리
    • 메모리 관리 : 한정된 메모리를 어떤 프로세스에 얼만큼 할당해야 하는지 관리한다. 
    • 디스크 파일 관리 
    • I/O 디바이스 관리 
  3. 자원 보호
    프로그램이나 다른 사용자가 데이터를 삭제하거나 중요 파일에 접근하지 못하게 컴퓨터 자원을 보호함.

✔️ 운영체제의 구조

운영체제(OS)는 컴퓨터 하드웨어 응용 프로그램 간의 인터페이스라고 했다. 

출처: https://velog.io/@jiyaho

운영체제에 속하는 영역은 크게 사용자 영역커널 영역으로 나뉜다. 

  • 사용자 영역 : 애플리케이션을 이용하기 위해 마련된 공간으로 인터페이스(GUI)가 해당된다. 
  • 커널 영역 : 사용자가 이용하는 하드웨어를 안전하고 효율적으로 사용하기 위해 마련된 공간으로 시스템 호출, 커널, 드라이버가 해당된다. 

➕ 사용자 영역

    1. 인터페이스(GUI, Graphical User Interface)

  • 사용자가 전자장치와 상호 작용할 수 있도록 하는 사용자 인터페이스의 한 형태이다. 
  • 그래픽을 이용하여 컴퓨터와 상호작용하는 방식으로, 단순 명령어 창이 아닌 아이콘을 마우스로 클릭하여 컴퓨터와 상호작용할 수 있도록 해줌. 
  • GUI가 없고 CUI만 있는 리눅스 서버도 있다.
    • CLI(명령줄 인터페이스, Command Line Interface)라고도 불리며, 그래픽이 아닌 명령어로 처리하는 인터페이스를 말한다. 
    • ex) 명령 프롬프트, Power Shell 

커널 영역

    1. 시스템 호출(System Call) 

시스템 호출(System Call)이란 운영체제(OS)가 커널에 접근하기 위한 인터페이스이며, 유저 프로그램(응용 프로그램, 유틸리티)이 운영체제(OS)의 서비스를 받기 위해 커널 함수를 호출할 때 쓴다. 
  • 시스템 호출은 사용자나 응용 프로그램으로부터 컴퓨터 자원을 보호하기 위해 자원에 직접 접근하는 것을 차단하는 역할을 한다. 
  • 즉, 시스템 호출없이는 커널에 진입할 수 없고 자원에 접근하기 위해선 반드시 시스템 호출이라는 인터페이스를 거쳐야한다. 
  • 유저 프로그램이 I/O 요청으로 트랩(trap)을 발동하면 올바른 I/O 요청인지 확인한 후 유저 모드가 시스템 호출을 통해 커널 모드로 변환되어 실행된다. 
  •  ex) I/O 요청인 fs.readFile()이라는 파일 시스템의 파일을 읽는 함수가 발동한 경우

출처 : https://velog.io/@jiyaho/

     • 유저 모드(User mode)에서 파일을 읽지 않고 시스템 호출(System call) 후 커널 모드(Kernel mode)로 전환하여 파일을 읽는다. 

     • 다시 유저 모드(User mode)로 돌아가 이후의 유저 프로그램 로직을 수행한다. 

     

    2.  커널(Kernel)

커널이란 메모리에 상주하는 운영체제의 핵심이 되는 부분이다.
  • 운영체제 역시 프로그램이기 때문에 메인 메모리에 적재 되어야 한다. 하지만 운영체제의 크기가 크므로 전체를 메인 메모리에 적재하는 것은 비효율적이다. 따라서 핵심 부분인 '커널'만 메인 메모리에 적재한다. 
  • 커널은 운영체제의 핵심으로 컴퓨터 자원(CPU, 메모리, 파일, 네트워크 등)들을 관리하는 역할을 한다. 
  • 사용자는 쉘(Shell)을 통해 커널에게 명령을 전달 한다. 

 

    3.  드라이버(Driver)

드라이버는 주변기기의 입출력을 통제하는 등 하드웨어를 제어하기 위한 소프트웨어이다. 

 


✔️ 용어 설명 

I/O 요청이란 입출력 함수, 데이터 베이스, 네트워크, 파일 접근 등에 관한 일을 의미한다. 
• 트랩(trap)이란 프로그램 내부에서 발생되는 인터럽트를 의미한다.
• 인터럽트란, 시스템 콜(자원에 대한 접근 등으로 사용자의 의도적인 요청)또는 예외사항(메모리 참조 오류, 0으로 나누기, 오버플로우 등)에서 CPU를 잠깐 정지시키는 것을 의미한다.
• 유저 모드(User Mode) : 유저가 접근할 수 있는 영역을 제한적으로 두며 컴퓨터 자원에 함부로 침범하지 못하는 모드
• 커널 모드(Kernel Mode) : 컴퓨터의 모든 자원에 접근할 수 있는 모드 
쉘(Shell)이란 커널과 사용자 프로그램 간에 대화를 가능하게 해주는 명령어 해석기 프로그램으로, 사용자 프로그램에서 실행시킨 명령어를 해석하여 그 결과를 커널로 보내주는 역할을 한다. 

# 출처 

https://velog.io/@jiyaho/CS-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C%EC%9D%98-%EC%97%AD%ED%95%A0%EA%B3%BC-%EA%B5%AC%EC%A1%B0

https://velog.io/@geniee1220/OS-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9COperating-System%EC%99%80-%EC%BB%A4%EB%84%90Kernel

728x90