카테고리 없음 / / 2023. 4. 2. 20:22

운영체제의 주요개념 , 동작원리 , 종류와 역사

반응형

평소 소프트웨어 개발을 하면서 운영체제에 대한 이해가 필요하다고 느껴 공부를 하던 중 운영체제의 주요 개념들과 동작원리 그리고 여러 가지 종류들에 대해 정리를 해보면 좋을 것 같아 글로 정리를 해보았다.

 

운영체제의 주요 개념  

운영체제에는 정말 많은 기능이 내포되어 있다. 그중 프로그래밍을 하면서 많이 사용되었던 개념들을 위주로 내용 정리를 해보려 한다. 첫 번째로 커널(Kernel)이다. 커널은 운영체제의 핵심 요소로 , 시스템 자원(CPU , 메모리, 입출력장치 등)을 관리하는 역할을 한다. 커널은 하드웨어와 응용프로그램 간의 인터페이스 역할을 하며 , 시스템의 안정성과 성능에 영향을 미친다. 다음은 프로세스(Process)이다. 프로세스는 개발을 할시 정말 많이 사용되는 단어인데 이는 운영체제 에서 동작하고 있는 응용 프로그램이다. 이 프로세스는 운영체제로 부터 필요한 자원(메모리 ,파일 등)을 할당받아 동작하고 다른 프로세스와는 독립적으로 실행된다. 세번째는 쓰레드(Thread)이다. 쓰레드는 프로세스 내에서 실행되는 작업의 단위이고 쓰레드는 프로세스의 자원을 공유하며 각각의 쓰레드는 독립적으로 실행될수 있다. 네번쨰는 파일시스템이다. 파일시스템은 운영체제에서 파일과 디렉터리를 관리하는 방식이다. 파일 시스템은 파일과 디렉터리의 생성, 수정, 삭제 등을 처리하며, 파일의 접근 권한과 보안등을 관리한다. 다섯번째는 메모리관리 (Memory management) 이다. 운영체제는 시스템 메모리를 관리하여 응프로그램이 실행될수 있는 공간을 할당하고 , 더 이상 사용되지 않는 메모리를 회수하여 다른 프로그램이 사용할수 있도록 한다. 마지막으로 운영체제는 가상화(Virtualization)을 지원한다. 가상화는 하나의 시스템에서 여러 개의 가상 시스템을 생성하여, 자원을 효율적으로 활용하는 기술이다. 가상화를 통해 하나의 물리적 시스템을 여러 개의 가상 시스템으로 나누어서 사용할수 있으며 이를 통해 하드웨어의 사용률과 활용도를 향상 시킬수 있다.

 

동작원리

운영체제가 어떻게 응용프로그램과 하드웨어와 상호작용을 하면서 동작하는지 쉽게 이해해보기 위해 하나의 응용프로그램 스타크래프트를 실행시켰을때를 예를 들어 한번 정리해보려한다. 우리가 스타크래프트를 실행하면 다음과 같은 일들이 내부적으로 일어나게 된다. 첫번째로는 응용프로그램 실행이다. 하드디스크에 있던 스타크래프트 응용프로그램이 메모리에 로드되게 된다. 두번째로는 자원할당이다. 그응용프로그램이 실행되면서, 게임 내부에서 사용할 여러가지 하드웨어 자원들(그래픽카드,사운드카드등)을 사용하기 위해 운영체제에 자원할당 요청을 하고 운영체제는 이에 따라 필요한 자원을 할당하게 된다. 세번쨰로는 하드웨어와의 상호작용이다. 응용프로그램이 게임 내부에서 사용하는 그래픽, 사운드 등의 자원들을 사용하기 위해서는, 이를 제어하기 위한 하드웨어 드라이버가 필요하고 운영체제는 이러한 드라이버를 제공하고 응용프로그램과 하드웨어간의 통신을 중재한다. 다음으로는 프로세스 스케줄링이다. 스타크래프트외의 다른 여러 프로세스들이 컴퓨터에서 실행되게 될때 운영체제에 적재된 스케줄링 알고리즘은 프로세스들에 적절한 실행시간 , 실행 순서 , CPU 자원들을 할당해 원활한 진행을 보장해 준다. 마지막으로는 보안기능이다. 스타크래프트와 같은 게임에서는 게임 데이터나 유저 정보와 같은 중요한 정보들이 처리 되므로, 이를 보호하기 위해 보안기능이 필요하다. 운영체제는 이러한 보안 요구를 충족시키기 위해, 사용자 권한 관리 , 접근 제어 , 암호화 등의 기능들을 제공한다.

 

종류와 역사

컴퓨터의 하드웨어와 응용프로그램 간의 인터페이스 역할을 수행하는 중요한 소프트웨어인 운영체제는 여러가지 종류가 있고 자신만의 특징과 역사를 가지고 있다. 첫번째 MS-DOS는 1981년 마이크로소프트사에서 개발된 운영체제로 IBM PC와 호환되는 컴퓨터에서 많이 사용되었다. 텍스트 기반으로 동작하고 명령행 인터페이스(Command Line Interface ,CLI)를 사용하여 사용자와 상호작용한다. 두번째로는 UNIX이다. 1960년대 말 AT&T벨 연구소에서 개발된 운영체제로, 대형 컴퓨터 시스템에서 주로 사용되었다. UNIX는 다중 사용자, 다중작업(Muti-User,Multi-Tasking)환경을 지원하며, 특히 시분할(time-sharing)시스템을 통해 여러 사용자가 동시에 시스템을 사용할 수 있게 해주는 장점이있다.세번째는 Windows이다. 1985년 마이크로소프트에서 개발된 운영체제로,MS-DOS와 호환성을 갖춘 그래픽기반 운영체제이다. 초기 버전에서는 한계가 있었지만, 1990년대 중반 이후부터는 안정성과 기능성이 크게 향상되어 PC 시장에서 지배적인 위치를 차지하고 있다.네번째는 Linux이다. Linux는 1991년 핀란드의 리누스 토르발스(Linux Torvalds)가 개발한 운영체제이다. UNIX 계열 운영체제를 베이스로 하여, 다영한 하드웨어와 플랫폼을 지원하며, 안정성과 보안성이 높은 특징을 가지고 있다. 또한 Linux는 오픈소스 소프트웨어로, 사용자들이 자유롭게 수정 및 배포할수 있어서 인기가 매우 높다. 그밖에도 여러가지 운영체제가 있고 여러 목적과 니즈를 충족시키기위해 만들어 졌다.

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유