본문 바로가기

2025 - 1학기/플랫폼OS

운영체제(OS)

728x90
728x90
Reporting Date: March. 07, 2025

운영체제(OS)의 전반적인 개념에 대해 다루고자 한다.


목차

01 서론
02 운영체제
03 처리 방식의 분류
04 OS의 분류
05 컴퓨터 시스템의 구성 요소
06 실행과정
07 사용자 관점
08 시스템 관점
09 OS의 개념과 진화
10 OS의 일반적 정의
11 OS의 처리


 
 

01 서론

초기에는 운영체제가 단순한 하드웨어 제어에 집중했으나,
이후에는 소프트웨어 기능이 추가되면서 점점 발전해왔다.

Windows 운영체제의 소스 코드는 공개되어 있지 않으며,
사용자는 단순히 라이선스를 구매하여 사용할 수 있다.

반면, 최근에는 오픈 소스 코드가 활성화되면서
리눅스(Linux) 와 같은 오픈 소스 운영체제가 등장했다.

즉, 운영체제의 내부 동작을 깊이 이해하고 싶다면,
리눅스를 활용해보는 것이 좋은 방법이다.

 

 

이 챕터에서 배울 수 있는 것.

 

컴퓨터 시스템의 일반적 구성과
인터럽트의 역할에 대한 기본 지식을 기술한다.


현대 다중프로세서 컴퓨터 시스템에서의
구성요소에 대해서 기술한다.


사용자 모드로부터
커널 모드로의 변경에 대해서 기술한다.

OS가 다양한 컴퓨팅 환경에서
어떻게 사용되는지 논의한다.


FreeOpen Source OS 예제를 제공한다.


 

02 운영체제

(Operating System)

컴퓨터의 하드웨어를 관리하는 프로그램.

응용 프로그램을 위한 기반을 제공하며, 컴퓨터 사용자와
컴퓨터 하드웨어 사이에서 중재자 역할을 수행하는 프로그램이다.
 
 

 

Operating System Market Share Worldwide | Statcounter Global Stats

This graph shows the market share of operating systems worldwide based on over 5 billion monthly page views.

gs.statcounter.com

 

 

 
 

OS의 목적

컴퓨터 시스템을 효율적으로 운영하고 사용자가 보다
편리하게 작업할 수 있도록 돕는 중요한 소프트웨어이다.

 
 

 1 .  사용자 프로그램 실행 지원

사용자가 원하는 프로그램을 실행할 수 있도록 지원하며,
이를 통해 다양한 소프트웨어를 활용할 수 있다.

 

 2 .  사용자 문제 해결 지원

파일 관리, 프로세스 제어, 네트워크 연결 등 여러 기능
제공하여 사용자가 보다 쉽게 문제를 해결할 수 있도록 한다.

 

 3 .  컴퓨터 시스템 접근성 향상

하드웨어와 소프트웨어 간의 인터페이스 역할을 하며,
사용자가 명령어나 그래픽 인터페이스(
GUI)를 통해
쉽게 시스템을 제어할 수 있도록 한다.

 

 4 .  하드웨어 자원 효율적 관리

CPU, 메모리, 저장 장치, 입출력 장치 등의 하드웨어 자원
효율적으로 관리하여 여러 프로그램이 원활하게 실행될 수 있도록 한다.

 


 

03 처리 방식의 분류

 

 1 .  아날로그 컴퓨터

연속적인 데이터를 처리하는 방식.

물리적인 값(온도, 속도, 압력 등)을 전기적인 신호로 변환하여 처리한다.
연속적인 데이터의 변화를 실시간으로 계산하거나 제어하는 데 유용하다.


연속적인 데이터를 기반으로 처리하는 특성 때문에
실시간 제어 시스템이나 복잡한 물리적 시스템 모델링에 사용된다.


전자 회로 시뮬레이션, 항공기 비행 제어 시스템, 온도 조절 시스템 등이 있다.

 

 2 .  디지털 컴퓨터

이산적인 데이터를 처리하는 방식.

데이터를 01의 이진수로 변환하여 계산한다.

대부분의 현대 컴퓨터는 이 방식을 사용하며,
고속 데이터 처리, 복잡한 계산, 소프트웨어 기반 작업을 처리할 수 있다.

특히 정보 처리 및 저장, 소프트웨어 개발,
대규모 데이터 분석 등 다양한 용도로 사용된다.


일반적인 개인용 컴퓨터, 서버 컴퓨터, 슈퍼컴퓨터 등이 있다.


 

04 OS의 분류
 

 1 .  대형 및 중형 컴퓨터 OS

(Mainframe / Mid-range Computer, 미니컴퓨터)

하드웨어 자원의 효율적인 활용에 중점을 둔 OS.

금융, 공공기관, 연구소 등에서 대량의 데이터를 처리하는 데 사용되며,
다수의 사용자가 동시에 접속하여 작업할 수 있도록 관리한다.


하드웨어의 성능을 최대한 끌어올리는 것이 주된 목표이다.
높은 안정성신뢰성을 제공하며, 대량의 데이터 처리 및 다중 사용자 지원한다.
 

  IBM 기반 OS

IBM z/OS;  메인프레임(기업용),
금융, 은행, 대기업 서버에서 사용된다.

IBM Blue Gene OS;  슈퍼컴퓨터(연산용).
→ 과학 연구, AI, 기후 분석, 유전체 연구에 사용된다.
 

 Unix 계열

AIX (Advanced Interactive eXecutive)
;
IBM POWER 아키텍처 기반 서버
→  고성능 컴퓨팅, 비즈니스 크리티컬 시스템에 사용된다.

HP-UX (Hewlett Packard Unix)
;
HPE PA-RISC, Itanium 아키텍처 서버
→ 고성능 서버,
ERP 시스템, 보안, 가상화에 사용된다.
Solaris
; SPARC, x86 아키텍처 서버
→ 
Oracle 데이터베이스, 네트워크 및 데이터 관리에 사용된다.
 

Linux 기반 OS

Cray Linux Environment (CLE)
; 슈퍼컴퓨터, 고성능 컴퓨팅(HPC) 환경
과학 연구, 대규모 데이터 분석, 고성능 컴퓨팅에 사용된다.

Red Hat Enterprise Linux (RHEL)
; 서버, 클라우드 환경, 데이터 센터
빅데이터 분석, 기업 애플리케이션에 사용된다.

SUSE Linux Enterprise Server (SLES)
; 서버, 클라우드 환, 가상화 환경, SAP
 환경
고가용성 시스템, 컨테이너 및 오케스트레이션에 사용된다.

 
 

 2 .  개인용 컴퓨터 OS

개인 사용자를 위한 OS.

업무용 소프트웨어, 게임, 멀티미디어 등
다양한 응용 프로그램을 지원하는 것이 특징이다.

사용자의 편의성을 중점적으로 고려하여
GUI
기반의 인터페이스가 주를 이룬다.

응용 프로그램 설치 및 실행이 용이하고,
하드웨어 및 주변기기와의 높은 호환성을 가진다.
 

Windows

→ 워크스테이션, 데스크톱 PC, 노트북.

(Dell XPS, HP Pavilion, ASUS ROG)

 

macOS

→ 애플의 Mac 시리즈.

(MacBook Air, MacBook Pro, iMac)

 

Linux

(Ubuntu, Fedora, Debian)

→ 개발자 및 연구 목적의 개인용 컴퓨터 (커스텀 빌드 PC).

 
 

 3 .  휴대용 개인용 컴퓨터 OS

이동성을 강조한 OS.

사용자가 물리적인 키보드 없이 터치스크린과
음성 인식 기능 등을 통해 쉽게 조작할 수 있도록 설계되었다.

스마트폰, 태블릿, 일부 노트북(2-in-1)에서 사용되며,
모바일 환경에서 최적화된 UI와 앱 구동 환경을 제공한다.


또한, 가벼운 무게와 뛰어난 이동성을 가지며,
네트워크 및 클라우드 기능과 연계하여 사용 가능하다.
 

Android

→ 삼성 갤럭시 시리즈, Google Pixel,
샤오미 스마트폰 및 태블릿.

 

iOS / iPadOS

→ 아이폰, 아이패드 시리즈.
 

 Chrome OS

→ 크롬북.

Google Pixelbook,
Samsung Chromebook.

 

운영체제는 각 환경에 맞춰 최적화되어 있으며,
목적과 사용 방식에 따라 다양한 기능을 제공한다.


 

05 컴퓨터 시스템의 구성

(Computer System)

 

 1 .  시스템

(System)

상호 연결된 요소들이 유기적으로
작용하여 특정 목표를 수행하는 구조.

물리적, 생물학적, 사회적, 기술적 분야 등 다양한 영역에서 적용된다.

여러 개의 개별 요소들이 모여 형성되며,
이들은 서로 유기적으로 상호작용하여 각자의 기능을 수행한다.

주어진 목적을 달성하기 위해 목표 지향적으로 운영되며,
요소들은 효율적으로 작동할 수 있도록 질서 있게 조직된다.

또한, 시스템은 외부 환경과 상호작용하고 정보를 주고받으며,
필요에 따라 환경에 적응할 수 있는 능력을 가진다.

예를 들어, 컴퓨터 시스템, 기업 조직 시스템, 생태계 시스템 등이 있다.

 

 

 2 .  하드웨어

(Hardware)

컴퓨터 시스템의 기본 계산 자원을 제공하며,
CPU, 메모리, I/O 장치 등으로 구성된다.

CPU데이터 처리 및 계산을 수행하는 역할을 하며,
메모리는 데이터 저장 및 처리 속도를 지원한다.

I/O 장치는 사용자와 시스템 간의 상호작용을 가능하게 하여,
외부 장치와 데이터를 주고받을 수 있도록 한다.


이러한 요소들이 유기적으로 결합되어 시스템의
기본적인 기능을 수행하는 역할을 한다.

 

 

 3 .  소프트웨어

(Software)

운영 체제

Operating System,
시스템 프로그램 또는 시스템 소프트웨어.

다수의 사용자가 다양한 응용 프로그램
사용할 수 있도록 하드웨어 자원의 사용을 제어 및 조정한다.

이를 통해 하드웨어와 소프트웨어 간의 상호작용을 관리하고,
시스템 자원의 효율적인 분배를 담당한다.

 

응용 프로그램

(Application Programs)

사용자의 특정 문제를 해결하기 위해
설계된 프로그램으로, 자원의 사용 방식을 정의한다.

예를 들어, 워드 프로세서, 컴파일러, 웹 브라우저,
데이터베이스 시스템, 비디오 게임 등이 있다.

이들은 각각 사용자의 요구를 만족시키기 위한 다양한 기능을 제공한다.

 

 

 4 .  사용자

(Users)

사람, 기계, 다른 컴퓨터 등을 포함하며,
소프트웨어와 하드웨어를 직접 또는 간접적으로 활용하는 주체를 말한다.


 

 
 

 


 

06 실행 과정

 

 1 .  프로그램 실행 요청

사용자가 바탕화면이나 시작 메뉴에서 응용 프로그램을 클릭한다.
운영 체제는 해당 프로그램을 실행해야 한다는 요청을 받는다.

 

 

 2 .  프로그램을 찾기

프로그램 실행 파일(.exe)은 하드디스크(SSD 또는 HDD)에 저장되어 있다.
운영 체제의 파일 시스템이 이를 찾아 메인 메모리(RAM)로 로드한다.

이 과정에서 디스크 스케줄링 알고리즘(예: FCFS, SSTF)이 사용될 수도 있다.
실행 파일뿐만 아니라 필요한 라이브러리(.dll 파일 등)도 함께 메모리로 적재된다.

 

 

 3 .  명령어 가져오기 및 실행

프로그램이 메모리에 올라오면, CPU가 실행을 시작한다.
PC가 첫 번째 명령어의 주소를 가리킨다.

CPU는 명령어 사이클(Fetch-Decode-Execute-Cycle)을
반복하면서 한 줄씩 명령을 가져와 실행한다.

 

Fetch

CPU가 메인 메모리(RAM)에서 명령어를 가져온다.

 

Decode

가져온 명령어를 해석하여 어떤 작업을 해야 하는지 결정한다.

 

Execute

해당 명령을 실행하여 결과를 만든다.

 

 

 4 . 프로그램 조작

사용자가 키보드로 문서를 작성하면,
운영 체제가 이를 받아서 응용 프로그램으로 전달한다.

작성한 문서를 저장할 때는 운영 체제가 파일 시스템을 통해 하드디스크에 기록한다.

 

 

 5 . 프로세스 관리

사용자는 특정 응용 프로그램을 사용하면서
인터넷 브라우저, 음악 플레이어 등 다른 프로그램도 실행할 수 있다.

운영 체제는 스케줄러(CPU 스케줄링)를 통해 여러 프로세스를 관리하며,
Round Robin, Priority Scheduling 등을 사용하여 CPU 시간을 나누어 사용한다.

 

 

 6 . 프로그램 종료

사용자가 응용 프로그램을 닫으면,
운영 체제는 프로세스 테이블에서 해당 프로세스를 제거한다.

프로그램이 사용하던 메모리를 해제하고,
저장된 데이터를 하드디스크에 기록한다.

CPU는 다른 작업을 수행할 준비를 한다.

 


 

운영 체제가 할 일은 관점(View)에 따라 달라진다.

 

 

07 사용자 관점

(User View)

편의성, 사용의 용이성, 좋은 성능을 원한다.
Convenience, Ease of Use, Good Performance

이 과정에서 자원 활용(Resource Utilization)에 대한 고려는 크지 않다.

 

최대의 활용

연결된 여러 대의 터미널을 통해 접근할 수 있는
대형
컴퓨터(Mainframe)나 미니 컴퓨터(Minicomputer)의 경우

사용자의 자원 활용극대화하기 위해서 설계된다.
 

이처럼 운영 체제는 범용 컴퓨터에서도 다양한 요구를 반영하여 작동한다.

 

①  워크스테이션 사용자

(Workstations)

전용 자원을 자유롭게 사용할 수 있지만,
서버의 공유 자원도 빈번하게 활용할 수 있도록 설계된다.  

즉, 사용 용이성과 자원 활용이 균형을 이루는 구조를 갖는다. 

 

 휴대용 컴퓨터

자원이 제한적이므로 사용성과
배터리 효율을 최적화하는 방식으로 설계된다.  

 

가전제품 및 임베디드 시스템

가전제품이나 자동차 내의 임베디드 컴퓨터처럼 
일부 시스템에서는 사용자 관점이 거의 없거나, 매우 제한적으로 적용된다.

 


 

08 시스템 관점

(System View)

OS는 하드웨어와 가장 밀접하게 연관된 프로그램.

 

 1 .  자원 할당자

(Resource Allocator)

OS모든 자원의 관리자로서 동작하며,
필요한 자원을 적절히 할당하는 역할을 수행한다.

또한, 자원을 둘러싼 상충하는 요청들을 공정하고
효율적으로 조정
하여 시스템을 원활하게 운영하도록 결정한다.

운영 체제에 대한 또 다른 관점으로는, 다양한 I/O(입·출력) 장치와
사용자 프로그램을 효과적으로 제어
하는 역할이 강조될 수 있다.

 

 2 .  제어 프로그램

(Control Program)

운영 체제는 컴퓨터의 오류 및 부적절한 사용을
방지하기 위해
사용자 프로그램의 실행을 관리한다.

특히, 입·출력 장치의 작동 및 제어와 밀접한 관련이 있다.


 

OS의 개념과 진화

 

OS는 한마디로 정의하기 어렵다.
다양한 역할을 포괄하며, 수많은 디자인과 사용 형태가 존재한다.

오늘날 운영 체제는 선박, 우주선, 게임기, TV,
산업 제어 시스템뿐만 아니라 토스터기까지
다양한 기기에 적용되고 있다.

이는 과거 군사용으로 사용되던 고정형 컴퓨터가 점차 범용화되었으며,
자원 관리와 프로그램 제어의 필요성이 증가했기 때문이다.

 

전통적으로, OS 설치 CD에 포함된 것이 운영 체제이고,
그 외는 응용 프로그램
이라는 단순한 관점이 있었다.

그러나, 사용자가 OS를 주문했을 때
공급업체가 제공하는 모든 것이 OS로 간주되기도 하며,

포함된 기능은 시스템에 따라 크게 다르고,
IT 환경의 변화에 따라 OS에 대한 개념도 진화하고 있다.

특히 Google, VMware, Microsoft가 새로운 OS 개념을 이끌고 있다.

예를 들어, 검색 엔진과 함께 웹 기반 애플리케이션, 캘린더, Gmail,
Google 드라이브 등의 서비스가 OS의 역할을 확장하는 방향으로 변화하고 있다.

 

 1 .  Google

OS를 단순히 PC를 실행하는 소프트웨어가 아닌,
사용자가 PC를 켠 후 Google Apps, 검색, 웨이브 등
웹 기반 애플리케이션을 이용하는 환경
으로 바라본다.

이를 반영한 대표적인 예가 데스크톱용 웹 OS Chrome OS이다.
즉, 과거에는 존재하지 않았던 웹 중심의 운영 체제 개념을 제시한 것이다.

 

 2 .  VMware

클라우드 데이터 센터에서 애플리케이션과
인프라를 연결하는 역할을 클라우드 OS로 정의한다.

대표적인 예로 vSphere 7이 있으며, 이는 가상화 환경에서
자원을 효율적으로 관리하고 배포하는 운영 체제 개념
을 반영한 것이다.

 

 3 .  Microsoft

현재 가상화 시장에서는 VMware에,
웹 기반 애플리케이션 분야에서는 Google에 밀리고 있다.

이를 감안하여, MS는 데스크톱 지배력과
클라우드 컴퓨팅의 비전을 결합하는 데 주력하고 있다
.

이 과정에서 쉐어포인트 워크스페이스와 같은 서비스가 시도되었으나 실패하였고,
그 후 Azure라는 퍼블릭 클라우드 서비스를 제공하고 있다.

현재 클라우드 시장에서 AWS32%, Azure20%의 점유율을 기록하고 있다.


 

10 OS 일반적 정의

컴퓨터에서 메인 메모리에 상주하면서 항상 실행되는
시스템 프로그램
을 일반적으로 커널(Kernel)이라고 한다.

커널은 OS의 핵심 부분으로, OS의 부분집합에 포함된다.
시스템 자원 관리, 프로세스 관리, 메모리 관리 등을 담당한다.

 

OS는 커널을 포함하여, 사용자 공간(User Space)에서
실행되는 응용 프로그램과 시스템 라이브러리, 미들웨어 등으로 구성된다.

커널은 운영 체제의 핵심으로, 하드웨어와 직접적으로 상호작용하며
시스템 자원을 관리하고, 사용자 프로그램의 실행을 제어하는 중요한 역할을 한다.

그 외의 다른 모든 프로그램은 응용 프로그램에 해당한다.

모바일 운영 체제인 iOSAndroid데이터베이스,
멀티미디어 및 그래픽
을 지원하는 미들웨어와 함께 코어 커널을 갖추고 있다.


 

11 OS의 처리

공유 메모리에 접근을 제공하는 공통 버스를 통해
연결된 여러 개의 장치 제어기와 하나 이상의 CPU로 구성된다.

CPU와 장치 제어기는 메모리 사이클을 얻기 위해 서로 경쟁하며 병행 수행된다.

각 장치 제어기는 특정 장치를 관리한다.
또한, 각 장치 제어기는 자신만의 로컬 버퍼를 가지고 있다.

공유 메모리에 대한 질서 있는 접근을 보장하기 위해 메모리 제어기가 제공된다.
메모리 제어기는 메모리 접근을 동기화하여 충돌을 방지하고 효율적인 자원 관리를 한다.

 

 1 .  H/W 장치

시스템 버스를 통해 프로그램을 실행 중인 CPU
신호를 보내 인터럽트(Interrupt)를 발생시킬 수 있다.

예를 들어, 마우스 인터럽트, 키보드 인터럽트 등은 하드웨어 인터럽트에 해당한다.

이러한 인터럽트는 액션을 취한 장치가 신호를 보내며,
이는 OSH/W 간의 상호작용의 핵심 부분이다.

장치 제어기는 이러한 통신을 인터럽트를 통해 실행한다.
이를 인터럽트 구동식 컴퓨터라고 부른다.

(Interrupt Driven Computer)

인터럽트는 적절한 인터럽트 서비스 루틴(ISR)이 있는 시작 주소로 제어를 전달한다.

프로세스는 신호를 받으면 CPU는 해당 작업을 처리할 수 없음을 알리고,
운영체제가 대신 처리하도록 한다.

이 과정에서 인터럽트 벡터 테이블을 참조하여
ISR의 주소를 찾고, 이를 통해 해당 인터럽트를 처리한다.

인터럽트가 요청되면, 인터럽트 벡터를 사용하여
인터럽트를 유발한 장치에 맞는 ISR의 주소를 제공하게 된다.

인터럽트 벡터는 여러 인터럽트 서비스 루틴에 대한 주소 배열을 가지며,
각 인터럽트는 고유한 장치 번호로 색인화되어 인터럽트 요청을 처리한다.

 

 2 .  응용 소프트웨어

트랩(Trap) 또는 예외(Exception)

오류(예: 0으로 나누기, 유효하지 않은 메모리 접근)나
사용자 프로그램의 운영 체제 서비스 요청에
의해 유발되는 소프트웨어 인터럽트이다.

이러한 인터럽트는 신호를 받으면 CPU
이를 처리할 수 없다는 신호를 보내고, 운영체제가 대신 처리한다.

그 후, 인터럽트 벡터 테이블을 참조하여
적절한 ISR의 주소를 찾아 이를 수행한다.

OS인터럽트 구동(Interrupt Driven) 방식으로 동작한다.

CPU가 인터럽트 요청을 받으면, 현재 실행 중인 명령을 완료한 후,

현재 수행 중인 프로그램을 일시 중단한 다음
해당 프로그램의 상태를 안전한 장소에 저장한다.

그 후, 인터럽트 처리 루틴을 실행하여 인터럽트 원인을 찾아내고
(인터럽트 벡터 테이블을 통해), 해당 ISR 또는
인터럽트 핸들러를 실행하여 인터럽트를 처리한다.

 

 3 .  인터럽트 원인 판별 방법

①  폴링 방식

(Polling)

주기적으로 상태를 체크하는 방법이다.

하지만 이 방식은 시간이 오래 걸리고 비효율적이어서,
보통 16비트 이하의 단순한 컴퓨터 시스템에서만 사용된다.

 

인터럽트 벡터 방식

(Vectored Interrupt)

인터럽트 발생 시, ISR을 수행하여 인터럽트 원인에 대한
처리를 하며, 이를 통해 빠르게 인터럽트에 대응할 수 있다.

만약 여러 작업이 동시에 이루어지면, 각 작업은 CPU의 의존성이 없이
독립적으로 실행되며, 작업이 완료된 후에는 각각의 결과가 처리된다.


[교제] 운영체제 제 10
[원그래프 출처] Examples - Apache ECharts


728x90
반응형