개발자는 기록이 답이다
운영체제 Ch.1 - 운영체제와 컴퓨터시스템의 구조 본문
운영체제의 종류
운영체제는 사용자와 시스템 자원 간의 상호작용을 관리하는 중요한 역할을 합니다. 이를 위해 가장 앞단에서 다양한 인터페이스가 사용됩니다. 주로 두 가지 인터페이스로 나뉩니다.
GUI (Graphical User Interface)
- 그래픽 요소를 사용하여 컴퓨터와 상호작용하는 인터페이스를 제공합니다.
- 대표적인 예로는 Windows, macOS 등의 현대 운영체제가 있습니다.
CUI (Character User Interface)
- 사용자가 키보드를 사용하여 텍스트 기반으로 컴퓨터와 상호작용하는 인터페이스입니다.
- 예전 운영체제인 MS-DOS가 대표적이며 1994년에 단종되었습니다.
운영체제의 역할
운영체제는 커널을 중심으로 여러 가지 핵심 기능을 수행합니다. 이러한 기능들은 다음과 같습니다:
(OS가 A라는 작업을 한다고 하면 동일한 의미로 커널이 A작업을 한다고 말할 수 있다)
- CPU 스케줄링과 프로세스 상태관리
- 메모리관리
- 디스크 파일 관리
- I/O 디바이스 관리
게임 프로그램과 운영체제의 동작
이해를 돕기 위해 1TB SSD에 게임 프로그램을 설치하는 상황을 가정해 봅시다.
- 프로그램 설치:
- 우리가 게임 프로그램을 1TB SSD에 설치했다고 가정합니다.
- 프로그램 실행과 메모리 사용:
- 이제 설치된 게임을 실행하면 해당 프로그램의 일부 또는 전체가 컴퓨터의 메모리(RAM)로 로드됩니다.
- 예를 들어, 만약 우리의 컴퓨터가 32GB RAM을 갖고 있다면, 게임 프로그램은 이 메모리에 로드되어 실행됩니다.
- 프로세스 생성:
- 이로써 게임 프로그램은 메모리에 올라가면서 운영체제에 의해 프로세스로 관리됩니다.
- 간단히 말해, 프로그램이 메모리에 로드되면 이것을 프로세스로 간주하며 운영체제가 이를 관리합니다.
- CPU의 역할:
- 게임을 실행하는 동안 중요한 역할을 하는 것은 CPU입니다.
- CPU는 메모리에 로드된 프로세스의 명령어를 실행하고 게임을 실행하는 데 필요한 계산을 수행합니다.
결국, 게임을 실행하는 것은 SSD에 설치된 프로그램이 메모리에 로드되어 프로세스로 관리되고, CPU가 메모리의 명령어를 실행함으로써 이루어집니다. 이 과정을 통해 우리는 게임을 즐길 수 있게 됩니다.
운영체제와 메모리 관리
1TB의 저장 공간 중에서 일부를 메모리(RAM)에 올리는 프로세스를 생각해봅시다.
- 프로그램을 우리의 컴퓨터에 엄청 많이 설치할 수 있지만,
- 메모리가 가득 차게 많은 프로세스를 실행하는 경우, 메모리 부족 문제가 발생할 수 있습니다.
이런 경우, 운영체제가 다음과 같은 기능을 수행합니다:
- 인터럽트 처리: 하드웨어나 소프트웨어 이벤트가 발생하면 운영체제는 이를 적절하게 처리하여 시스템의 안정성을 유지합니다.
- Swapping: 메모리 부족 상황에서 운영체제는 일부 프로세스를 디스크로 스왑하여 메모리 자원을 확보합니다.
- 우선순위 관리: 다양한 프로세스 간의 실행 우선순위를 관리하여 중요한 작업을 먼저 처리하거나 리소스를 할당합니다.
이러한 기능을 통해 운영체제는 메모리 관리를 효율적으로 수행하고 시스템의 안전성과 성능을 유지합니다.
운영체제 역할 정리
- 프로세스 우선순위 관리 (CPU 스케줄링)
- 운영체제는 CPU가 어떤 프로세스를 먼저 실행시킬 것인지를 결정합니다.
- 이를 통해 CPU 자원을 효율적으로 관리하며, 우선순위를 부여합니다.
- 메모리 관리
- 운영체제는 한정된 메모리 자원을 효율적으로 활용하기 위해 메모리 관리를 수행합니다.
- 스와핑 및 페이지 폴트와 같은 메모리 관련 작업을 수행하여 프로세스를 실행합니다.
- 저장 장치 관리
- 운영체제는 사용자가 특정 프로그램을 설치하면 하드 디스크 또는 SSD에 데이터를 어떻게 저장할지 결정합니다.
- 파일 시스템을 관리하여 데이터를 구조적으로 저장하고 검색합니다.
- I/O 장치 관리
- 운영체제는 입출력(I/O) 장치(예: 키보드, 마우스)와 관련된 드라이버를 설치하고 관리합니다.
- 이를 통해 사용자와 하드웨어 간의 상호작용을 원활하게 합니다.
운영체제 구조
운영체제는 주요한 세 가지 구성 요소로 구성됩니다:
- 인터페이스: 사용자와 시스템 간의 상호작용을 담당하는 부분입니다. 이는 그래픽 사용자 인터페이스(GUI) 또는 문자 기반의 명령 줄 인터페이스(CUI)와 같이 다양한 형태로 나타납니다.
- 시스템 콜: 운영체제의 기능을 활용하기 위해 프로그램이 운영체제와 상호작용할 수 있게 해주는 인터페이스입니다. 프로그램은 시스템 콜을 호출하여 운영체제의 서비스를 요청할 수 있습니다.
- 커널: 운영체제의 핵심 부분으로, 시스템 콜을 처리하고 하드웨어 자원을 관리하는 역할을 합니다. 커널은 운영체제의 핵심으로서 모든 운영체제 기능을 구현하고 제공합니다.
.
운영체제와 하드웨어 통신
운영체제의 핵심 부분인 커널은 다양한 하드웨어와 통신하도록 드라이버를 사용합니다.
예를 들어, 키보드를 설치하면 종종 "키보드 드라이버 설치"와 같은 메시지를 볼 수 있습니다. 이것은 키보드와 운영체제 간의 통신을 설정하기 위한 드라이버 설치를 의미합니다.
드라이버는 운영체제의 일부로, 특정 하드웨어와 상호작용하도록 프로그램화된 소프트웨어입니다. 이들 드라이버는 운영체제를 통해 하드웨어와 데이터를 교환하고 제어합니다. 따라서, 운영체제를 통해 키보드와 같은 하드웨어와 통신할 수 있게 되며 사용자의 명령을 인식하고 처리합니다.
컴퓨터 시스템의 구조
- CPU : 인터럽트에 의해 메모리에 존재하는 명령어를 해석해서 실행하는 일꾼
- DMA컨트롤러 : CPU의 일을 보조하는 일꾼
- 메모리 : 전자회로에서 데이터, 상태 등을 기록하는 장치(작업장)
- 타이머 : 특정 프로그램에 시간을 다는 역할
- 디바이스 컨트롤러 : IO디바이스들의 작은 CPU
- 로컬버퍼 : 디바이스에 달려있는 작은 메모리
메모리 크기와 동시 실행 가능한 프로그램
컴퓨터 시스템의 메모리 크기는 동시에 실행 가능한 프로그램의 수를 결정합니다.
- 메모리가 제한적인 경우, 동시에 실행할 수 있는 프로그램 수가 제한됩니다.
- 메모리가 크면 작업공간에 더 많은 작업을 할당할 수 있어, 동시에 많은 프로그램을 실행할 수 있습니다.
CPU는 메모리에 할당된 프로그램의 명령어를 실행합니다. 따라서, 메모리의 크기는 동시에 처리할 수 있는 작업의 양을 결정하며, 이를 통해 다수의 작업을 효율적으로 수행할 수 있습니다.
CPU
산술논리연산장치, 제어장치, 레지스터로 구성되어있는 장치. 인터럽트에 의해 메모리에 존재하는 명령어를 해석해서 실행하는 일꾼.
산술논리연산장치 - ALU
ALU(arithmetic and logical unit, ALU)는 덧셈, 뺄셈, 곱셈, 나눗셈 등 산술연산과 논리연산을 하는 회로장치를 말합니다.
제어장치 - CU
제어 장치(control unit, CU)는 프로세스의 조작을 지시하며 명령어들을 읽고 해석하며 데이터 처리를 위한 순서를 결정합니다.
레지스터
CPU안에 있는 매우 빠른 임시기억장치
CPU 계산 시 흐름도
CPU가 메모리에 올라간 일을 하는 일꾼이라고 했는데, 더 정확히 말하자면 메모리에서 레지스터로 올라간 값을 읽는 일꾼이라고 할 수 있습니다.
'CS > 운영체제' 카테고리의 다른 글
운영체제 Ch.3 - 시스템콜(system call)과 modebit (1) | 2023.10.16 |
---|---|
운영체제 Ch.2 - 인터럽트(interrupt) (0) | 2023.10.16 |
기술 면접 대비 CS 핵심 요약 - 메모리 관리 전략 (0) | 2023.09.12 |
기술 면접 대비 CS 핵심 요약 - 스케줄링 (0) | 2023.09.11 |
기술 면접 대비 CS 핵심 요약 - 스레드 안전, IPC, 좀비&고아 프로세스 (0) | 2023.09.10 |