본문 바로가기
운영체제/컴퓨터 시스템 구조

운영체제의 정의와 폰 노이만 구조

by Dev.Andy 2023. 3. 19.
최신의 ooo OS를 업데이트 하세요.
oo OS xx.x.을(를) 사용자의 ooo에서 사용 할 수 있으며...

일상 생활에서 스마트 기기(PC, 스마트폰 등)를 접하면 흔히 접할 수 있는 알림이다.

많이 접하는 단어면서도 설명을 하라고 하면 쉽지 않은 운영체제(OS)는 과연 무엇일까?

 

📌 운영체제의 정의

  An operating system (OS) is system software that manages computer hardware and software resources, and provides common services for computer programs.
  운영체제(operating system)는 컴퓨터의 하드웨어와 소프트웨어의 자원을 관리하고 컴퓨터 프로그램을 위한 일반적인 서비스를 제공하는 시스템 소프트웨어이다.

Operating system - Wikipedia

 

운영체제도 크게 보면 소프트웨어지만 여기서는 운영체제를 소프트웨어라 하지 않고 응용 프로그램을 가리킨다.

 

이렇게 정의만 살펴 보면 크게 와닿지 않으니 핵심 단어를 위주로 알아 보자.

유저와 애플리케이션, 운영체제, 하드웨어에 대한 이미지
운영체제는 하드웨어와 소프트웨어(애플리케이션)의 자원을 관리하는 시스템 소프트웨어이다.

 

1. 커널(Kernel) = 좁은 의미의 운영체제

  The kernel is a computer program at the core of a computer's operating system and generally has complete control over everything in the system.
  커널(kernel)은 운영체제의 핵심(core)이며 일반적으로 운영체제의 모든 것을 제어하는 권한을 가진다.

Kernel (operating system) - Wikipedia

 

일반적으로 우리가 '컴퓨터 자원을 관리하는 의미'의 운영체제를 말할 때는 커널을 의미한다.

  • 커널은 운영체제의 핵심(core)을 담당하는 부분이다. 커널은 메모리에 상주하여 컴퓨터 자원의 모든 것을 제어하는 권한을 가진다.
  • 실제로 kernel은 '(견과류·씨앗의) 알맹이[인(仁)]'라는 뜻의 영단어이다.

 

2. 시스템 유틸리티(System Utilities) + 커널 = 넓은 의미의 운영체제 

  System utiliy software is required for the maintenance of computer. System utilities are used for supporting and enhancing the programs and the data in computer.
  시스템 유틸리티 소프트웨어(system utility software)는 컴퓨터를 유지하는데 필수적이다. 시스템 유틸리티는 컴퓨터의 프로그램이나 데이터를 지원하고 향상시키는데 사용된다.

What is System Utilities Software | Examples of system utilities software

  • 커널과 다르게 유틸리티는 메모리에 상주하지 않는다.
  • 컴퓨터의 보안이나 성능 향상, 메모리 관리 등의 기능을 하는데 쓰인다.

 

📌 폰 노이만 구조

현재 사용하는 컴퓨터 구조는 폰 노이만이 1945년에 처음으로 구상한 컴퓨터 구조에서 비롯되었다고도 할 수 있다. 그래서 컴퓨터 구조를 흔히 폰 노이만 구조라고도 부른다.

폰 노이만 구조 이미지
폰 노이만 구조 이미지

폰 노이만 구조의 특징

  1. 중앙처리장치(CPU)와 기억 장치(Memory Unit), 입출력장치(Input/Output Device)로 크게 3가지로 이루어져 있다
  2. 동일한 메모리에 데이터와 명령어가 분리 되지 않고 공존한다.
  3. 내장 메모리에서 순차적으로 처리한다
  4. 프로그램 내장 방식의 컴퓨터 구조이다

여기서 폰 노이만 구조의 핵심은 처리 장치(Processor, 흔히 CPU)와 기억 장치(Memory)를 분리한 것이 핵심이다.

 

폰 노이만 구조의 구성 요소

위의 폰 노이만 구조를 구체화 시킨 것이 하드웨어이다. 이에 대한 구성 요소를 하나하나 알아 보자.

  컴퓨터의 하드웨어는 크게 프로세서(흔히 CPU), 메모리(주 기억 장치, Main memory), 입출력 장치(I/O devices)로 이루어지고, 이 구성 요소들은 시스템 버스(Bus)를 통해 연결 되어 있다.

컴퓨터 하드웨어를 CPU와 메인 메모리, 입출력 장치, 버스로 나눈 이미지
컴퓨터 하드웨어는 프로세서(CPU)와 주 기억 장치(Main memory), 입출력 장치(I/O devices)가 시스템 버스(Bus)를 통해 연결 되어 있다.

구조 구성 요소 특징
CPU Control Unit CPU의 제어 장치로, CPU의 동작에 관여함
  ALU 사칙 연산, 보수 연산, 시프트 연산, 논리 연산 등을 수행하는 장치
  Registers CPU의 임시 저장 장치, ALU의 연산에 필요한 데이터나 그 결과를 임시로 보관함. 플립 플롭(flip-flop)으로 구성
Bus Address Bus CPU의 주소에 관한 신호를 전송
  Control Bus CPU의 명령어의 수행을 위한 제어 신호를 전송
  Data Bus CPU의 연산에 필요한 데이터를 전송
Memory Main Memory 명령어와 데이터를 저장하는 주 기억 장치
I/O devices Disk 대용량의 데이터를 외부에 보관하는 보조 기억 장치
  Printer, Keyboard, … 컴퓨터의 입출력에 필요한 주변 연결 장치

 

📌 프로세서(Processor, CPU)

  In computing and computer science, a processor or processing unit is an electrical component (digital circuit) that performs operations on an external data source, usually memory or some other data stream.
  컴퓨팅과 컴퓨터 과학에서, 프로세서(processor)는 컴퓨터의 하드웨어에 주로 메모리나 다른 데이터 스트림과 같은 외부 데이터 장치에서 명령어를 실행하는 전자 부품(전기 회로)이다.

Processor (computing) - Wikipedia

  • 프로세서는 컴퓨터의 하드웨어에 장착한 모든 장치의 동작을 제어하고 메모리에서 가져 온 명령어를 실행하는 주체이다.
  • 또한 프로세서는 CPU(중앙처리장치)와 사실상 같은 의미로 사용되고 있다.
  • 엄밀히 말하면 프로세서는 CPU말고도 GPU(그래픽 처리 장치), 코프로세서(coprocessor)를 대신하는 말로 쓰이기도 한다.

 

📌 응용 프로그램(Application)

  응용 프로그램(application program)은 컴퓨터를 이용하는 사용자가 컴퓨터의 작동과 특정 작업의 수행을 위해 명령어로 작성된 프로그램을 뜻한다.
  An application program (software application, or application, or app for short) is a computer program designed to carry out a specific task other than one relating to the operation of the computer itself, typically to be used by end-users.

Application software - Wikipedia

  • 일반적으로 사용자가 매번 하드웨어나 운영체제를 직접 조작하여 원하는 서비스를 수행한다면 크나큰 어려움을 겪을 것이다.
  • 따라서 응용 프로그램을 통하여 사용자가 직관적인 기능(버튼 누르기, 값 입력하기 등)만을 수행하여 하드웨어를 조작할 수 있도록 하는 매개체가 바로 응용 프로그램이다.
  • 오늘 우리가 거의 매일 사용하는 YouTube, Naver, Kakao Talk 앱을 떠올리면 된다.

 

📌 자원(Resources)

  컴퓨터 시스템에서 자원(resources)은 시스템의 프로세스나, 메모리나 장치(입출력 장치, 기억 장치 등), 파일 등의 구성 요소를 말한다.

위의 정의는 하드웨어 자원(hardware resources)만을 일컫는다면, 프로세스나 파일 메시지 등은 소프트웨어 자원(software sources)이라 한다.

 

📌 운영체제의 목적

  운영체제의 목표는 시스템의 자원(resources)을 효율적으로 관리하여 사용자에게 편리한 서비스를 제공하는 것이다.

과거의 운영체제와는 다르게 현재의 운영체제는 동시에 두 개 이상의 작업을 처리하는 멀티태스킹(multi-tasking)의 특징을 갖고 있다. 따라서 동시에 여러 작업을 수행하면서, 사용자가 편리하게 이용할 수 있도록 컴퓨터가 운영되어야 한다.

 

운영체제는 우리 사회의 '정부'와 같은 역할을 한다. 운영체제도 정부와 같이 자원을 효율적이면서도 공정하게 관리해야 한다. 극단적인 효율을 위해 하나의 프로그램만 실행할 수도 없고, 극단적인 공평을 위해 감당할 수 없을 정도로 모든 프로그램을 동시에 실행할 수도 없다. 그 사이에 적절한 타협을 봐야 시스템을 잘 작동할 수 있다.

 

또한 시스템의 자원은 '성능'이라는 물리적인 한계가 있다. 최대한 자원을 효율적으로 관리하여 사용자에게 편리한 서비스를 제공해야 한다.

 

📌 다음 내용

이제 전체적인 구조에 대해 알아 보았으니, CPU가 어떻게 구성되어 있고 메모리의 구조에 대해 자세히 알아 보자.

[운영체제] 프로세서(CPU)의 구성과 메모리 계층 구조

 

[운영체제] 프로세서(CPU)의 구성과 메모리 계층 구조

저번 시간에는 추상적인 운영체제의 개념에 대해 알아 보았다면, 이번에는 보다 자세한 프로세서의 구성과 메모리 계층 구조를 알아 보자. 📌 프로세서(CPU)의 구성 (주의) 아래의 테이블에 언급

andy-archive.tistory.com

 

댓글