운영체제 란?
운영체제(OS, Operating System)는 쉽게 말해 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 시스템 소프트웨어이다.
- 운영체제는 하드웨어와 소프트웨어의 중간다리 역할이라고 보면 된다.

- 즉, 사용자와 하드웨어 사이의 인터페이스 역할을 하면서 응용 프로그램이 효율적으로 동작하도록 지원하고, 시스템 자원을 효율적으로 관리해준다.
- 운영체제의 가장 핵심 부분은
커널(Kernel) 이다.
- 운영체제의 커널은 전반적인 프로세스를 뜻한다. 프로세스 관리, 메모리 관리, 저장공간 관리, 연결된 장치 관리 등 컴퓨터에 속한 모든 자원을 관리하는 역할을 한다.
- 운영체제의 종류는
Windows , Linux, Unix, macOS 등이 있다.
운영체제의 역할
프로세스 관리
- OS 에서 작동하는 응용 프로그램을 관리하는 기능
- 어떻게 보면 프로세서(CPU) 관리하는 것이라고 볼 수 있다.
- 현재 CPU를 점유해야 할 프로세스(프로그램)을 결정하고, 실제로 CPU에 할당한다.
- 프로세스 간 공유 자원 접근과 통신 등을 관리하게 된다.
저장장치 관리
1차 저장장치(메인 메모리) 와 2차 저장장치(HDD 등)을 관리한다.
- 1차 저장장치(Main Memory)
- 프로세스에 할당하는 메모리 영역의 할당과 해제
- 각 메모리 영역 간의 침범 방지
- 메인 메모리의 효율적 활용을 위한 가상 메모리 기능
- 2차 저장장치(HDD, NAND Flash Memory 등)
- 파일 형식의 데이터 저장
- 파일 데이터 관리를 위한 파일 시스템을 OS에서 관리
- FAT, NTFS, EXT2, JFS, XFS eㅡㅇ 많은 파일 시스템들이 개발되어 사용 중
네트워킹
- TCP/IP 기반의 인터넷에 연결하거나, 응용 프로그램들이 네트워크를 사용하려면 OS 에서 네트워크 프로토콜을 지원해야 한다. 현재 사용 OS 들은 다양하고 많은 네트워크 프로토콜을 지원한다.
디바이스 드라이버
- OS 는 시스템의 자원, 하드웨어를 관리한다.
- 시스템에는 여러 하드웨어가 붙는데 OS가 이들을 인식하고 관리하게 만들어 응용프로그램이 하드웨어를 사용할 수 있게 만들어야 한다.
- 따라서 OS 안에 하드웨어를 추상화 해주는 계층이 필요한데, 이를
디바이스 드라이버라 한다.
- 이런 수많은 디바이스 드라이버를 관리를 OS가 한다.
입출력 관리
- OS 는 입출력 장치와 상호작용을 관리한다.
- 사용자와 응용 프로그램이 키보드, 마우스, 디스플레이 등과 통신을 할 수 있도록 지원하며, 입출력 장치의 성능을 최적화 한다.
오류처리
- OS 는 시스템 내/외부에서 발생하느 오류와 예외 상황을 처리한다.
프로세스의 비정상 종료 , 메모리 오버플로우, 입출력 오류 등을 감지하고 처리하여 시스템의 안정성과 신뢰성을 유지한다.
시스템 콜(System Call) 인터페이스
- 시스템 콜은 사용자나 프로그램이 직접적으로 컴퓨터 자원에 접근하는 것을 막고 커널을 보호하기 위해서 만든 코드 집합이다.

- 커널에 접근할려면 시스템 콜 함수를 통해 접근할 수 있다.
- 커널에는 굉장히 중요한 코드나 중요한 내용이 있는데 아무나 접근하게 만들면 누가 바꾸거나 할 수 있기 때문에 OS 는 시스템 콜을 통해서만 호출할 수 있게 디자인 되어 있다.
- OS 를 통해 안정적이고 효율적인 동작을 할려면 사용자나 응용프로그램이 직접 하드웨어에 접근하는 것을 막아야 한다.
User Mode(CPU 명령어 사용 제한) 과 Kernel Mode(CPU 명령어를 사용하여 하드웨어 직접 제어)로 분리해 OS를 사용하게 된다.
- User Mode 와 kernel Mode 는 시스템 콜(System Call)을 통해서 전환된다.
<출처>
운영체제(OS)란? 개념과 구조(커널, 시스템콜 등)
[운영체제] 운영체제(OS)란?
Tech Interview