단의 개발 블로그

운영체제 본문

CS/OS

운영체제

danso 2024. 4. 23. 00:23

운영체제란

컴퓨터 시스템의 하드웨어를 관리하는 소프트웨어이다. 하드웨어는 CPU, 키보드, 마우스, 모니터 등이 있으며 이러한 자원을 관리하여 사용자가 컴퓨터를 효과적이고 편리하게 사용할 수 있도록 도와준다. 운영체제의 종류로는 대표적으로 Window, Mac, Linux 등이 있다. 운영체제의 핵심 부분을 커널이라고 하는데 커널의 여러가지 기능을 추가된 형태를 합쳐 운영체제라고 부른다.

운영체제 역할

자원 하드웨어(CPU, 메모리, 저장장치, 입출력 장치 등) 자원을 효율적으로 관리한다.
메모리 응용프로그램이 필요로 하는 메모리 공간을 할당하며 관리한다.
프로세스 프로세스의 생성, 실행, 정지, 중지 등의 작업을 제어하며 여러 프로세스의 간 통신을 관리한다.
시스템 디스크와 파일 시스템을 관리하며 생성, 삭제, 복사, 이동 등의 작업을 처리한다.
입출력 사용자와 응용프로그램이 키보드, 마우스, 모니터 등과의 통신을 할 수 있도록 관리한다.
인터페이스 사용자와 컴퓨터 간의 상호작용을 위한 GUI 및 CLI 환경을 제공하여 사용자가 컴퓨터를 제어할 수 있도록 한다.
네트워킹 네트워크를 관리하며 여러 프로토콜을 지원하여 컴퓨터 간 통신을 가능하게 한다.
보안 시스템 접근제어, 사용자 인증, 암호화 기능을 제공하며 불법적인 접근을 차단한다.
오류 내부와 외부에서 발생하는 오류를 처리한다.

 

전통적인 컴퓨터 시스템 구성

  • 한개 이상의 CPU
  • 여러개의 디바이스 컨트롤러와 하나의 버스로 연결

Bootstrap

컴퓨터의 전원이 들어오면 처음에 프로그램이 시작됨을 뜻한다. 보통 커널을 로딩하는 것을 의미하며 운영체제를 메모리에 로딩하는 것이다.

 

Interrupts

사용자가 I/O device, CPU가 통신하는 방법이다. 사용자가 키보드를 누르면 interrupt가 발생하고, CPU에 signal을 보내서 처리한다.

 

저장 장치 속도

register -> cache -> main memory -> solid-state disk -> hard disk -> optical disk -> magnetic tapes

 

커널이란

커널은 프로세스, 메모리, 저장장치를 관리하며 커널은 운영체제의 핵심을 담당한다. 커널 내부는 시스템 호출과 드라이버가 존재한다.

시스템 호출은 system call이라고 불리며, 커널이 자기자신을 보호하기 위해 만든 인터페이스이다. 자원에 대한 직접 접근을 차단하여 자원을 안전하게 이용하도록 한다. 응용 프로그램이 저장장치에 데이터를 저장하려고 할 때 직접 하드 디스크에 저장하는 방식이 아니라 커널을 통해서 데이터 저장요청을 하는 것이다.

드라이버는 하드웨어 인터페이스 역할을 한다. 간단한 입출력 정도의 입력만 제공하고, 특성을 반영한 소프트웨어는 추가적인 드라이버와 함께 실행하도록 한다.

 

커널의 종류

  • 단일형 커널 - 하드웨어 위에 높은 수준의 가상 계층을 정의한다. 높은 수준의 계층은 기본 연산 집합과 관리자 모드에 동작하는 모듈인 프로세스 관리, 동시성, 메모리 관리 등의 운영체제 서비스를 구현하기 위한 시스템 콜로 되어 있다.
  • 마이크로 커널 - 하드웨어 위에 매우 간결한 추상화를 정의한다. 기본 연산 집합과 운영체제 서비스를 구현한 스레드 관리, 주소공간, 프로세스간 통신의 작은 시스템 콜로 이루어져 있다.
  • 혼합형 커널 - 본질적으로 마이크로 커널을 따르나, 일부 커널의 비 본질적 기능이더라도 사용자 레벨에서 수행될 때 성능상 느린 코드들을 커널 레벨에서 수행하도록 수정한 것을 말한다.
  • 엑소커널 - 운영체제 설계에 대한 급진적인 신 개념으로 말단 이론을 따르는 수직 구조의 운영체제 이다. 엑소커널의 구상은 개발자에게 추상화를 줄여 하드웨어 추상화에 대한 선택지를 다양하게 하는 것이다.

 

 

출처

https://jerryjerryjerry.tistory.com/171#google_vignette

https://ko.wikipedia.org/wiki/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C

https://velog.io/@dddooo9/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C%EB%9E%80-%EC%A0%95%EC%9D%98-%EC%97%AD%ED%95%A0-%EA%B5%AC%EC%A1%B0

 

 

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

프로세스  (0) 2024.04.23