운영체제는 컴퓨터 시스템의 중추 역할을 하며, 하드웨어 자원과 사용자 간의 인터페이스를 제공한다.
이를 교통 신호에 비유할 수 있는데, 교통 신호는 차량과 보행자가 안전하게 이동할 수 있도록 조절하는 반면,
운영체제는 다양한 애플리케이션이 하드웨어 자원을 효율적으로 사용할 수 있도록 조정한다.
운영체제의 주요 구성 요소
- 커널(Kernel)
- 운영체제의 핵심으로, 하드웨어 자원의 직접적인 관리와 프로세스 간의 상호작용을 담당한다. 커널은 시스템 콜을 통해 사용자 프로그램과 하드웨어 간의 교량 역할을 한다.
- 쉘(Shell)
- 사용자와 운영체제 간의 상호작용을 제공하는 인터페이스로, 명령어를 입력받아 실행하는 CLI(예: bash 등)와 그래픽 기반의 GUI(예: GNOME, KDE 등) 형태가 있다.
- 파일 시스템(File System)
- 데이터를 저장하고 접근하는 방법을 정의한다. 디렉터리 구조를 통해 파일의 계층적 관리가 가능하며, 다양한 파일 형식을 지원한다.
프로세스와 스레드
- 프로세스
- 정의: 실행 중인 프로그램의 인스턴스. 각 프로세스는 독립적인 메모리 공간과 자원을 보유한다.
- 특징:
- 각 프로세스는 고유한 프로세스 ID(PID)를 가지고, 독립적으로 실행되며 서로 간섭하지 않는다.
- 프로세스는 생성, 실행, 대기, 중지 등 다양한 상태를 가질 수 있다.
- 스레드
- 정의: 프로세스 내에서 실행되는 경량 프로세스. 스레드는 같은 프로세스의 메모리 공간을 공유한다.
- 특징:
- 스레드 간의 컨텍스트 스위칭이 프로세스보다 경량화되어, 성능이 향상된다.
- 멀티스레딩을 통해 하나의 프로세스가 여러 작업을 동시에 수행할 수 있다.
- 멀티스레딩
- 멀티스레딩은 CPU의 자원을 효율적으로 활용할 수 있게 해주며, 동시성 문제를 해결하는 데 유리하다. 예를 들어, 웹 서버는 여러 클라이언트의 요청을 동시에 처리할 수 있다.
프로세스 관리와 메모리 관리
- 프로세스 관리
- 운영체제는 프로세스의 생명주기를 관리하고, 스케줄링 알고리즘(예: 라운드 로빈, 우선순위 기반 스케줄링)을 통해 CPU 자원을 효율적으로 배분한다.
- 프로세스 간 통신(IPC) 메커니즘을 제공하여 서로 다른 프로세스가 데이터와 정보를 공유할 수 있게 한다.
- 메모리 관리
- 운영체제는 물리 메모리와 가상 메모리의 관리를 통해 효율성을 극대화한다. 페이지 테이블을 사용하여 가상 주소를 물리 주소로 매핑하며, 메모리 단편화를 최소화한다.
- 또한, 메모리 보호 기법을 통해 각 프로세스가 자신의 메모리 영역에만 접근하도록 한다.
하드웨어 구성 요소
- 연산장치
- CPU: 명령어를 처리하는 중앙 처리 장치로, 연산 및 제어 작업을 수행한다. 멀티코어 CPU는 여러 스레드를 동시에 실행할 수 있다.
- GPU: 그래픽 처리 장치로, 병렬 처리가 필요한 계산을 효과적으로 수행한다.
- 저장장치
- RAM: 비휘발성 메모리로, 운영체제와 프로세스가 실행되는 동안 데이터를 임시로 저장한다.
- HDD/SSD: 데이터를 영구적으로 저장하는 장치로, SSD는 빠른 데이터 접근 속도로 주목받고 있다.
'데이터 사이언스 공부' 카테고리의 다른 글
| 00. logloss와 예측율의 상관관계 ( logloss가 낮아도 예측율은 높을 수 있는가?) (1) | 2024.11.08 |
|---|---|
| 2-1. 깃 설치법 Git Installation, 깃과 깃허브 Git & GitHub (0) | 2024.11.07 |
| 2. 깃 Git (0) | 2024.11.01 |
| 1-1. 리눅스 명령어 모음 Linux commands (3) | 2024.10.25 |
| 1. 리눅스 Linux (4) | 2024.10.13 |