• 자원(resource) : 컴퓨터가 동작하기 위해 필요한 모든 것들 ex) CPU, 메모리 등 컴퓨터 내부의 물리적인 부품
• 프로세스: 운영체제에 의해 현재 실행 중인 프로그램. 운영체제로부터 자원을 할당 받아 실행됨.
- 싱글 프로세스: 하나의 프로세스만 실행
- 멀티 프로세스: 여러 개의 프로세스가 독립적인 메모리 공간에서 실행
• 스레드: 프로세스 내에서 실행되는 작업의 단위. 하나의 프로세스는 하나 이상의 스레드로 이루어져 있음.
- 싱글 스레드: 하나의 작업을 완료할 때까지 다른 작업을 수행하지 않음
- 멀티 스레드: 여러 개의 스레드가 동시에 작업을 수행
운영체제의 역할
(1) 메모리 관리
- 프로그램이 메모리에 저장되는 주소를 할당
• 가상 메모리
- 프로그램이 실제로 실행되는 부분만 메모리에 저장하여, 물리적인 메모리의 크기보다 큰 프로그램을 실행할 수 있도록 해줌
- 사용자 입장에서는 실제 메모리 크기보다 더 큰 메모리를 사용하는 것처럼 보임
- 페이징은 가상 메모리와 실제 메모리를 관리하는 기법 중 하나임
(2) 프로세스 관리
- 프로세스가 실행되는 순서를 관리(프로세스 스케줄링)
• 멀티태스킹(Multitasking)
- 여러 개의 작업을 동시에 실행하는 것
- 프로세스 스케줄링을 통해 멀티태스킹이 가능함
(3) 네트워크 자원에 대한 관리
(4) 파일과 디렉터리 생성, 복제, 삭제하는 파일 시스템 관리
(5) 입출력 장치의 관리를 통한 입출력 작업
(6) 사용자 인증, 방화벽 등 보안 및 인증
커널과 셸
• 커널(Kernel)
- 하드웨어와 소프트웨어의 인터페이스
- 프로세스 스케줄링, 메모리 관리, 입출력 제어 등 운영체제의 핵심 기능 담당
• 셸(Shell)
- 커널과 사용자 간의 인터페이스
- 사용자가 입력한 명령어를 해석하여 커널에 전달하고 커널이 실행한 결과는 사용자에게 출력
리눅스
• GUI(Graphic User Interfave)
- 입출력 등의 기능을 아이콘과 같은 그래픽으로 나타내는 방식
• CLI(Command LIne Interface)
- 터미널에서 명령어를 사용하여 컴퓨터 시스템과 상호작용 하는 방식
리눅스는 GUI와 CLI를 모두 지원하지만, 기본적으로 CLI를 통해 작업
'컴퓨터 사이언스 기초' 카테고리의 다른 글
리눅스 명령어 (2) | 2023.04.21 |
---|---|
소프트웨어 (0) | 2023.04.08 |
컴퓨터 시스템 구조 (0) | 2023.04.08 |