CS(Computer Science) - 운영체제

2경빈·2024년 4월 27일

CS

목록 보기
3/11

시스템 자원 (리소스)

  • 프로그램이 실행되기 위해 마땅히 필요한 요소.
  • 컴퓨터의 네 가지 핵심 부품 포함.

*운영체제는 자원을 관리하는 특별한 프로그램이다.

운영체제

  • 운영체제는 컴퓨터 시스템의 핵심 소프트웨어로, 하드웨어 자원을 관리하고 응용 프로그램이 하드웨어와 상호 작용할 수 있도록 지원한다.
  • 주요 기능에는 프로세스(실행중인 프로그램) 관리, 메모리 관리, 입출력 장치 관리, 파일 시스템 관리 등이 포함된다.
  • 대표적인 운영체제로는 Windows, macOS, Linux 등이 있으며, 각각 다양한 운영 환경과 기능을 제공한다.

*운영체제 또한 프로그램이기 때문에 메모리에 저장되나, 특별한 프로그램이기 때문에 커널 영역에 위치됨.

메모리 관리

  • 프로그램이 실행될 때 운영체제가 프로그램을 메모리에 적재시킨다.
  • 종료된 프로그램을 메모리에서 지워준다.
  • 실행하는 프로그램의 크기가 메모리의 물리적인 크기보다 클 경우에도 효율적인 방식으로 실행시켜준다. *페이징(Paging), 스와핑(Swapping)

자원 관리(CPU 스케줄링)

  • CPU 스케줄링은 운영체제의 프로세스 관리에 밀접하게 관련된 기능 중 하나이다.
  • 여러 개의 프로세스들의 실행 순서와, 시간을 정해준다.

*여러 개의 프로그램을 동시에 실행된다. == 여러 개의 프로그램을 매우 빠르게 번갈아가면서 실행된다.

*개발자가 운영체제를 알아야 하는 큰 이유 중 하나.
Ex) 공유 자원의 다수의 프로세스나 스레드가 동시에 접근하는 경우, 어떤 프로세스는 반드시 특정 프로세스가 먼저 실행되고 나서 실행되어야 하는 경우 등등을 운영체제가 관리(프로세스 동기화)해주는데, 개발자는 이러한 부분을 고민하면서 개발을 하는 경우가 많다. 그래서 개발자는 운영체제에 대해 알고 있어야 한다.

입출력 관리

  • 프로세스의 입출력(I/O) 장치 관리는 운영체제가 프로세스가 입출력 작업을 수행할 때 필요한 자원을 효율적으로 할당하고 관리하는 것을 의미한다.
  • 프로세스는 디스크, 네트워크, 키보드, 모니터 등 다양한 입출력 장치와 상호 작용할 수 있다. 이를 관리하기 위해 운영체제는 장치 드라이버 관리, 입출력 버퍼링, 디바이스 관리 등과 같은 기능을 제공한다.

파일 시스템 관리

  • 프로세스의 파일 시스템 관리란 컴퓨터 시스템에서 실행되는 프로세스가 파일과 관련된 작업을 수행하는 방법을 의미한다.
  • 파일 시스템 관리는 파일의 생성, 읽기, 쓰기, 삭제 등과 같은 기본적인 작업을 포함한다.
  • 이러한 작업을 효율적으로 수행하기 위해 운영 체제는 파일 시스템을 관리하고, 이를 위한 시스템 콜과 파일 시스템 API를 제공한다.

*시스템 콜 : 문지기 역할을 통한 자원 보호, 프로세스는 운영체제를 통해서 자원에 접근하게 된다.(자원 접근을 대행한다.)

개발자가 운영체제를 공부해야 하는 이유

  • 내가 개발하는 프로그램이 운영체제로부터 어떤 도움을 받고 있는지를 이해하고 개발을 하면, 훨씬 더 넓은 시각에서 프로그램을 할 수 있다.
  • 오류 메세지에 대해 깊게 이해할 수 있다(문제 해결 능력).
profile
eggs before hatching

0개의 댓글