운영체제는 컴퓨터의 모든 하드웨어 자원을 관리하고, 이를 사용자와 응용 프로그램이 사용할 수 있도록 관리하는 핵심 소프트웨어다.
- 또한 운영체제는 하드웨어 및 시스템 리소스를 제어하고 프로그램에 대한 일반적인 서비스를 지원한다.
- 컴퓨터 시스템 자원들을 효율적으로 관리한다.
운영체제의 4가지 구성요소
사용자 인터페이스
- 사용자 인터페이스는 사용자와 컴퓨터가 정보를 쉽게 주고 받을 수 있도록 도와주는 매개체를 말한다.
- 매개체에는 CLI( Command-Line Interface )와 GUI( Graphical User Interface )가 존재한다.
CLI( Command-Line Interface )
- CLI 방식은 키보드에 입력한 텍스트를 통해 컴퓨터와 소통한다.
- 입력과 출력이 존재하며, 정해진 명령어를 사용하여 소통한다.
- 이때 입력한 명령을 출력하는 프로그램을 쉘( Shell )이라고 한다.
GUI( Graphical User Interface )
- 그래픽으로 전달되는 그림 혹은 아이콘을 이용하여 사용자와 소통한다.
- 키보드와 마우스 모두 사용할 수 있다.
- 윈도우 검색창에서 [시스템] -> [정보]를 확인하거나, 바탕화면의 아이콘을 보는 것이 모두 이에 해당한다.
- 즉, 사용자가 편리하게 사용할 수 있도록 입출력 등의 기능을 알기 쉬운 아이콘 같은 그래픽으로 나타내는 것
커널
운영체제의 핵심이 되는 컴퓨터 프로그램으로, 운영체제의 다른 부분 및 응용 프로그램 수행에 필요한 여러 가지 서비스 제공
커널의 동작 방식
- 커널은 메모리에 상주하여 사용자의 요청을 처리한다.
- 커널의 성능에 따라 운영체제의 안정성, 성능, 속도 등의 영향을 받는다.
커널의 프로세스 및 메모리 관리
- Windows의 경우, [ctrl] + [alt] + [delete]를 함께 누르면 작업 관리자가 나타난다
- 사용중인 프로세스를 확인 가능하다.
- 커널은 프로세스들이 공평하게 자원을 활용할 수 있도록 도운다.
- CPU의 경우 하나의 프로세스가 독점하면, 다른 프로세스를 사용할 수 없으므로 일정 시간이 경과하면 다른 프로세스로 전환하여 프로세스를 병행하여 실행할 수 있다
- CPU는 다수의 프로세스를 실행할 수 없으나, 커널이 여러 개의 프로세스를 빠른 속도로 스케줄링 한다.
- 커널의 스케줄링으로 인해 마치 여러 개의 프로세스가 동시에 사용하는 것처럼 보인다.
- 메모리는 한정된 자원이므로, 커널에서 각 프로세스 별 필요한 공간을 적절히 분배한다.
커널의 파일 관리
- 커널은 파일의 생성, 삭제, 수정, 읽기 등의 작업 수행을 도운다.
- 즉, 커널이 파일 관리를 하지 않는다면 간단한 사진 파일조차 저장하기 힘들다.
- 폴더, 디렉터리 등의 관리 또한 커널이 담당한다.
커널의 입출력 관리
- 키보드, 마우스, 디스크, 프린터, USB 등의 장비 또한 커널이 관리한다.
- 프로그램은 메모리에 적재되어야 실행되는데, 입출력 장치 또한 작동하려면 메모리를 거쳐야 한다.
- 커널은 항상 메모리에 상주해 있으므로, 입출력 장치의 요청을 적절한 곳에 할당하고 사용자가 편리하게 사용할 수 있도록 관리한다.
시스템 호출( System Call )
- 시스템 호출(System Call)은 운영체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스
- 즉, 프로그램을 실행시키기 위해서는 시스템 호출을 거쳐 커널에 접근한 뒤 하드웨어를 사용할 수 있다
- 운영체제는 안전을 위해 User 모드와 Kernel 모드로 나뉜다.
- 각 모드 별 권한을 다르게 가지고 있다.
- Kernel 모드를 사용해야 할 이벤트의 경우 다음 그림과 같은 흐름을 가진다.
Driver( 드라이버 )
- 드라이버는 새로운 기기를 사용할 때 설치하지 않으면, 기기 사용 시 컴퓨터가 인식하지 못함
- 마우스, 키보드 같은 간단한 디바이스는 커널에 포함되어 있으므로 연결되면 바로 작동하지만 그래픽 카드, 프린터기 등의 복잡한 디바이스는 직접 드라이버를 설치해주어야 한다.
- 즉, 드라이버는 새로운 장치 연결 시 어떤 장치이고 사용법은 어떻게 되는지에 대한 정보를 포함하고 있다.
'K-Shield > Jr' 카테고리의 다른 글
[K-Shield][Jr] CSS(Cascading Style Sheets) (0) | 2025.04.27 |
---|---|
[K-Shield][Jr] HTML( Hyper Text Markup Language ) (0) | 2025.04.27 |
[K-Shield][Jr] 웹의 통신 과정 (0) | 2025.04.27 |
[K-Shield][Jr] 웹의 동작 방식 (0) | 2025.04.27 |
[K-Shield][Jr] VPN( Virtual Private Network ) (0) | 2025.04.27 |