윈도우XP, 7, 10과 같은 제품을 왜 다른 소프트웨어와 구별하여 운영체제라고 부를까?

운영체제는 컴퓨터 시스템 자체의 운영을 담당하는 핵심적인 소프트웨어로, 시스템의 하드웨어를 컨트롤하고 

응용 프로그램이 필요로 하는 다양한 리소스를 제공하여 사용자가 원하는 작업을 수행할 수 있게 해준다.


운영체제가 제공하는 주요 서비스


1.커널 (Kernel) 서비스 : CPU를 제어하여 실질적인 처리를 수반하는 운영체제의 핵심 기능으로 명령을 

처리하는 서비스를 말한다.


커널 서비스의 특징에 따라 단일 작업 운영체제인지, 다중 작업 운영체제인지가 구분된다.

MS-DOS는 단일 작업 운영체제이지만, 윈도우 운영체제는 다중 작업 운영체제이며, 멀티태스킹 운영체제라고 부른다.


2.입출력(Input/Output)서비스 : 다양한 주변 장치와 소프트웨어의 입출력을 지원하는 서비스를 말한다.


컴퓨터에서 사용되는 각종장치는 운영체제에 장치를 구동하는 드라이버가 등록되어야 운용이 가능하다.

지금은 플러그 앤 플레이(PnP) 장치가 일반적으로 사용되고 있어 장치를 설치하고 운용하기가 쉬어졌지만, 

과거에는 장치의 IRQ(Interrupt Request) 번호를 직접 세팅하고 수동으로 드라이버를 설치해야 하는 등 불편이 많았다.


3.리소스 관리(Resource Management) : 리소스란, 응용 프로그램의 수행에 필요한 자원들을 말한다.


소프트웨어 실행에 필요한 핵심 자원은 메모리이고, 운영체제는 응용 프로그램이 요구하는 메모리 공간을 

사용할 수 있게 해주며, 물리적인 메모리가 부족한 경우 디스크의 빈 공간을 부족한 메모리의 대용으로 

활용하는 가상 메모리 기술을 사용하여 응용프로그램이 필요로 하는 메모리 자원을 제공한다.


4.파일시스템(File System) 서비스 : 파일시스템은 디스크 매체에 데이터의 읽기/쓰기를 위해 고안된 것으로, 

포맷을 통해 구성된다.


운영체제의 파일 시스템 서비스를 통해 응용 프로그램을 찾아 실행하고, 작업한 데이터를 원하는 

파일 이름으로 저장하고 불러올 수 있다.

운영체제에 따라 파일시스템의 성능과 안정성, 보안능력은 차이가 있다.


5.응용프로그램(Application Program)서비스 : 운영체제는 응용 프로그램이 필요로 하는 각종 실행 라이브러리를 갖추고 

응용 프로프램에 서비스하며, 개발 환경에서도 라이브러리를 이용하여 쉽게 프로그램을 개발할 수 있게 지원한다.


윈도우 운영체제는 비주얼 C++ 같은 프로그랭 언어에서 MFC(Microsoft Foundation Class)라는 

클래스 라이브러리를 제공하여 응용 프로그램 개발을 지원한다.


6.사용자 인터페이스(UI, User Interface) 서비스 : 사용자 인터페이스는 운영체제 서비스의 최종 목적지로 

인간과 컴퓨터의 의사소통 수단을 말한다. 


아무리 성능이 뛰어난 운영체제라 하더라도 사용하기 어려우면 외면받을 수밖에 없다.

사용자 입장에서 볼 대는 복잡한 기능보다 사용하기 쉬운 게 가장 좋은 운영체제라 할 수 있다.

운영체제(Operating System, OS)의 개념 및 기능


1. 운영체제의 개념과 발전

운영체제는 사용자의 작업명령이나 응용 소프트웨어의 실행을 위해 하드웨어 자원을 할당하고 제어하는 

프로그램으로 컴퓨터 시스템 내에서 플랫폼 역할을 한다.

그림 - 운영체제의 역할

 

운영체제는 컴퓨터의 시동을 관장하며, 사용자 인터페이스를 제공하고, 프로그램을 실행시킬 뿐만 아니라, 

메모리나 파일을 관리하고, 주변기기를 관리하며, 네트워크에 연결하는 등의 작업을 수행한다. 


초창기 컴퓨터에서는 별도의 운영체제 개념이 적용되지 않았다.

그러나 1960년대 IBM System/360 시리즈에서 유사한 기종에 같은 시스템 소프트웨어를 적용함으로써 

메인프레임 컴퓨터 시스템에서 운영체제 개념이 태동하게 되었다.

이후 1970년대에 미니컴퓨터에서 UNIX, VMS, Microsoft에서 CP/M, DOS, Apple에서 Mac OS 등의 운영체제가 탄생하였다.


1990년대에는 MS Windows와 같은 그래픽 인터페이스 방식의 운영체제가 주류를 이루었으며, 2000년대에는 

모바일 기기 등 소형기기에는 임베디드 운영체제가 적용되었다.


운영체제는 컴퓨터의 크기별 종류에 따라 구분되기도 한다. 

메인프레임용 운영체제, 미니컴퓨터 및 워크스테이션용 운영체제, PC용 운영체제, 모바일 운영체제에 따라 

시스템 소프트웨어의 규모 및 특성을 달리하고 있다.


2. 운영체제의 기능


1) 컴퓨터의 시동 (Booting)


컴퓨터 시스템을 사용할 때 사용자가 제일 먼저 하는 일은 컴퓨터를 시동시키는 일로서 

운영체제의 가장 기본적인 기능 중 하나이다.

컴퓨터를 시동시키는 방법으로는 전원 버튼을 누름으로써 전원을 연결시켜 컴퓨터를 시작시키는 

Cold booting과 컴퓨터가 켜져 있는 상태에서 재시작 시키는 Warm booting이 있다.


그림 - 컴퓨터를 시동시키는 부팅기능은 ROM에 저장된 Firmware에 의해 수행된다.


이후 시동이 되고 나면 하드디스크에 저장된 운영체제 프로그램 중에서 핵심이 되는 부분이 

커널 (Kernel)이 주메모리에 로드되어 기본 작업을 수행하게 된다. 


커널 부분은 메모리 상주 프로그램 형태로 실행되어 눈에 보이지 않고 백그라운드에서 

작업을 수행하며 운영체제의 나머지 기능은 필요할 때 해당부분을 로드하여 실행한다.


또한 컴퓨터가 시동되면 운영체제에서 하드웨어의 연결 상태를 확인하여 시스템의 구성목록을 관리하게 된다.


2) 사용자 인터페이스 제공


사용자가 컴퓨터 시스템이나 소프트웨어와 대화하려면 사용자 인터페이스를 통해서 가능한데, 

사용자의 명령이나 데이터를 입력받으면 운영체제는 입력된 데이터를 컴퓨터가 이해할 수 있는 

형태로 변환을 해 주고 또한 처리 결과를 사용자가 알 수 있도록 화면에 다양한 형태로 출력해준다.


사용자 인터페이스의 유형으로는 


명령어 방식 (Command Line)


메뉴 방식 (Menu Driven)


그래픽 방식 (Graphical User Interface) 등이 있다.


3) 프로그램 실행관리

시스템 자원을 프로그램이나 주변 기기에 할당하여 실행을 제어하는 작업을 말한다.

컴퓨터내 CPU가 하나인 경우 작업을 순서대로 돌아가며 실행하는 시분할 기법이 사용되며 

사용자가 다수의 작업을 위해 해당되는 다수의 프로그램을 실행할 경우 여러개의 CPU가 수행하는 

다중작업(Multitasking)이 필요하게 된다.


CPU가 작업을 처리하는 방식에는 몇가지가 있다.


시분할 (Time Sharing) 방식,


병렬처리 (Parallel Processing) 방식,


다중처리 (Multiprocessing) 방식등이 있다.


운영체제는 메모리 또한 관리를 하는데 CPU 내에 있는 빠른 속도의 레지스터와 캐시 메모리, 

주메모리인 RAM 및 디스크 등의 메모리 사용을 최적화 하는 것이 목적이다.

현재 수행 중인 작업에서 프로그램과 데이터를 적절한 메모리 영역에 할당하고 

프로그램의 실행이 완료된 후에는 이들을 제거하는 일을 한다.

운영체제에서 커널 부분과 상황에 따라 필요한 기능, 실행 중인 프로그램, 작업 중인 데이터 등을 

주메모리인 RAM에 상주시켜야 하는데 경우에 따라서 RAM 용량이 부족한 경우가 있다.

이런 경우 하드디스크 일부를 RAM 처럼 활용하는 가상메모리 (Virtual Memory) 방식을 적용한다.

실행 중인 프로그램을 적당한 크기로 나누어 현재 실행에 꼭 필요한 부분은 RAM에 배치하고 

당장 필요하지 않는 부분은 하드디스크에 배치하였다가 필요하게 되면 바꾸어 로드하여 RAM 용량이 

훨씬 큰 것처럼 느끼도록 처리한다.


5) 파일 관리


이 기능은 하드디스크에 파일을 계층적 구조의 폴더로 저장시키는 역할을 한다.

일반적으로 파일이름은 문자나 숫자 등으로 구성되며, 이름 끝에 점(.) 다음에는 파일의 종류를 알 수 있도록 확장자를 붙인다.

[예:.exe/.com/.bat/.hwp/.doc/.ppt/.bmp/..zip/.mp3]


6) 기타 기능

보안 기능, 암호화 및 압축 기능, 인터넷 연결 작업, 네트워크 제어 기능 등이 있다.


3. 운영체제의 종류


1) 데스크탑 운영체제

Microsoft의 DOS, Windows 계열 (NT, 98, ME, 2000, XP, Vista, 7, 8, 10, Server)

Apple의 Mac OS

AT&T Bell 연구소의 UNIX

UNIX 계열의 공개 버전인 Linux


2) 네트워크 기반 및 메인 프레임 운영체제

Windows NT, SUN Solaris, IBM OS/2, UNIX, Linux


3) 모바일 기기용 임베디드 (Embedded) 운영체제

Windows CE

Embedded Linux

RTOS (Palm OS, Symbian OS)



+ Recent posts