Computer Science/Operating System

[운영체제] 현대 운영체제가 가지는 특징

brong 2023. 9. 10. 00:50
728x90

이전 포스팅

 

[운영체제] 운영체제의 여러 종류 | Batch, Multi-programming, Time-Sharing, Distributed, Real Time OS 등

이전 포스팅 [운영체제] 운영체제의 역사 (feat. 컴퓨터의 역사) 이 포스팅에서 다루는 내용운영체제의 역사, 컴퓨터의 역사, 배치시스템, resident monitor (상주모니터), spooling, multiprogramming 들어가며

thisisphysis.tistory.com

 

 

운영체제가 등장한 지 수년이 지남에 따라 많이 발전한 운영체제는 향상된 기능과 보안 서비스를 갖추게 되었다. 

그래서 이번 포스팅에서는 안정적이고, 효율적인, 그리고 사용자 친화적인 서비스를 제공하는 오늘날의 운영체제가 가지는 특징을 알아보려 한다.  명확하게 정해진 것은 아니지만 많이 언급되는 특징들을 정리했다.

 

현대 운영체제 특징
OOOS, Multi-tasking, Multi-threading, SMP, DOS, Microkernel

현대 운영체제가 가지는 특징

  • 객체 지향 설계
  • 멀티테스킹, 멀티스레딩
  • 대칭 멀티프로세싱
  • 분산 시스템
  • 마이크로 커널 아키텍쳐

 

 

객체 지향 설계 Object-Oriented Design 


객체 지향 운영체제(OOOS; object-oriendted operating system)는 객체 지향 프로그래밍 (OOP) 기법을 사용하여 설계한 운영체제이다. 

 

객체 지향 운영체제는 시스템의 다양한 방면을 나타내는 객체들의 집합으로 보여진다. 

예를 들면, OOOS는 프로세스 객체, 파일 객체, 디바이스 객체, 사용자 객체 등의 집합인 것이다. 

 

객체는 데이터와 관련된 행동 (data and behavior)을 묶어놓은 것이다. 그리고 각 객체들은 잘 정의된 인터페이스를 통해 상호작용 한다. 

 

이러한 OOOS의 가장 큰 장점 중 하나는 바로 높은 수준의 모듈화와 유연성이다. 

운영체제라는 엄청난 크기의 시스템을 객체 단위로 잘게 쪼개버렸기 떄문에, 다른 시스템에 영향을 주지 않고 특정 개체를 추가하고 삭제하고 수정하기가 쉽다. 이러한 특징은 전체 시스템을 유지보수하고 더 발달시키기에 유리하다. 

 

또한 잘 정의된 인터페이스는 각 객체들이 표준화된 방식으로 소통하게 하여, 오류를 줄이고 시스템의 안정성을 높인다.

 

 

 

멀티테스킹과 멀티스레딩


멀티테스킹 : 동시에 여러 프로그램 또는 프로세스를 실행시키는 것.

 

기본적으로 CPU는 한번에 하나의 프로그램만 실행할 수 있다. 그러나 멀티테스킹 환경에서 운영체제는 CPU 타임을 잘게 쪼게서 각 프로그램 혹은 프로세스에게 할당한다. 그리고 각 프로그램이 짧은 시간동안 실행되고나면 다음 프로그램이 실행된다. 이렇게 하면 사실은 한번에 하나의 프로그램만 실행되는 것이지만 마치 동시에 여러 개의 프로그램이 실행되는 것처럼 보인다. 

 

예를 들어, 카톡을 짧은 시간 동안 실행하고, 브라우저를 짧은 시간 동안 실행하고, 또 카톡, 브라우저를 계속 짧은 시간동안 번갈아 수행하면 사용자에게는 마치 카톡과 브라우저가 동시에 실행되고 있는 것처럼 보인다!

 

 

멀티스레딩 : 하나의 프로세스 안에서 동시에 여러 실행 흐름을 가지고 실행시키는 것. 

 

멀티스레드로 프로그래밍된 프로그램에서 각 스레드는 분리된 명령어 집합을 동시에 실행시킨다. 이것은 프로그램이 동시에 여러 개의 테스크를 실행시키게 한다. 

하나의 프로그램에서 동시여 여러 테스크가 실행되면서 프로그램의 성능이 향상된다. 

 

멀티테스킹과 멀티스레딩을 함께 적용하게 되면, 효율적으로 시스템 자원을 관리할 수 있고, 동시에 여러 프로그램 혹은 프로세스를 실행시킬 수 있게된다. 그럼 사용자는 한번에 여러 작업을 수행할 수 있고, CPU 타임이나 메모리 같은 자원들을 더 잘 활용할 수 있게 된다. 

 

 

 

대칭 멀티프로세싱 Symmetric Multiprocessing (SMP)


대칭 멀티프로세싱 : 하나의 메모리와 운영체제를 공유하는 두 개 이상의 동일한 프로세서가 연결되어 실행되는 멀티프로세싱 한 종류. 

SMP 시스템에서 각 프로세서들은 메모리의 모든 영역에 접근할 수 있고, 어떤 작업이든 수행이 가능하다. 

그렇기 때문에 성능을 향상시키고 더 빠르게 작업을 완료하기 위해서, 처리해야 하는 작업들을 각 프로세서에게 분배해서 실행시킬 수 있다. 

 

SMP 시스템의 가장 큰 장점 중 하나는 바로 확장성이다. 

처리해야 하는 작업량이 증가하는 상황을 생각해보자. SMP 시스템의 경우에는 하드웨어나 소프트웨어의 별다른 변화없이 단순히 다른 프로세서에게 작업을 처리하게 함으로써 증가하는 부하를 관리할 수 있다!

 

-> 작업량을 예측하기 어렵거나 작업량의 변동이 심할 때 안정적으로 시스템 부하를 관리할 수 있다. 동적으로 작업량을 관리할 수 있기 때문에 여러 사용자들이 접근하는 서버에서 사용하기에 적합하다. 

 

 

 

분산 시스템 Distributed Operating System (DOS)


분산 시스템은 이전 포스팅에서 다룬 것처럼, 독립된 여러 개의 컴퓨터 상에서 실행되는 운영체제이다. 

 

하나의 컴퓨터에서 실행되는 기존의 운영체제와 다르게 DOS의 경우, 분산 컴퓨팅을 지원하도록 설계되었다. 

*분산 컴퓨팅 : 여러 컴퓨터가 하나의 공통 목표를 달성하기 위해 상호 협력하게 하는 컴퓨팅

그래서 DOS의 경우 일반적으로 과학 시뮬레이션이나 날씨 예측 등 엄청 많은 수의 컴퓨터가 함께 복잡한 작업들을 처리해야 하는 환경에서 많이 사용된다. 

 

DOS 상의 컴퓨터들은 서로 통신하고, 메모리 등의 자원을 공유하며 하나의 시스템을 구성한다. 

 

 

마이크로 커널 아키텍쳐  Microkernel Architecture


마이크로 커널 아키텍쳐 :  미니멀리즘, 모듈화, 유연성을 강조하는 운영체제 디자인 패턴.

 

이 아키텍쳐는 운영체제를 작게 최적화하여 쪼개놓은 것이다. 각 커널들은 파일 시스템, 네트워크 서비스 등과 같이 단순한 서비스만을 제공한다. 마이크로 커널은 프로세스별로 서비스를 제공한다. 

 

이러한 구조의 중요한 장점은 바로 높은 수준의 모듈화와 유연성을 제공한다는 것이다. 

프로세스별로 커널의 기능들이 제공되기 때문에, 다른 시스템에 영향을 주지 않고 각 커널 기능들을 추가하고 제거하고 수정이 가능하다. 

 

또다른 장점은 시스템의 신뢰성과 보안성의 향상이다. 

프로세스별로 커널 기능이 따로 분리되어 있기 때문에, 특정 기능의 오류가 다른 기능들에 영향을 거의 주지 않는다. 

 

 

 

정리


안정적이고 효율적이며 보안성까지 갖추는 현대 운영체제의 특징

  • 객체 지향 설계 -> 모듈화, 유연성
  • 멀티테스킹과 멀티스레딩 -> 효율성, 성능 향상
  • 대칭 멀티프로세싱 -> 확장성, 부하 관리 
  • 분산 시스템 -> 확장성, 자원 공유
  • 마이크로 커널 -> 모듈화, 유연성, 신뢰성, 보안성 

 


ref.

https://www.notesjam.com/2017/10/characteristics-of-modern-operating-system.html