CS/OS (Operating System)

[운영체제] 운영 체제란?

bu119 2023. 7. 14. 09:00
728x90
반응형

운영 체제(OS, Operating System)

사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 시스템 소프트웨어

 

 

운영체제는 하드웨어를 관리하고, 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 응용 프로그램과 하드웨어 간의 인터페이스로써 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경을 제공해준다.

 

컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 즉, 중개자 역할을 다.

 

운영체제의 목적

1. 컴퓨터의 하드웨어 관리

컴퓨터에는 수 많은 하드웨어가 존재한다. CPU, 메모리, 디스크, 키보드, 마우스, 모니터, 네트워크 등이 있으며 이를 잘 관리해주어야 컴퓨터를 효율적으로 사용할 수 있다. 운영체제의 성능이 좋을수록 컴퓨터의 성능 역시 좋아진다고 할 수 있다.

 

2. 사용자에게 편의를 제공

운영체제가 없다면 위에서 말한 하드웨어에 관한 모든 관리를 사용자가 해야한다는 점과 같이 컴퓨터를 사용하는데 매우 불편함을 겪을 것이다. 하지만 현재 많은 발전을 거쳐온 운영체제가 설치된 컴퓨터는 사용하기에 매우 편리하다는 것을 느낄 수 있다.

대표적으로 스마트폰이 있다. 스마트폰 역시 컴퓨터의 일종이고 운영체제가 설치되어 있다. 그리고 스마트폰은 남녀노소 누구나 할 것 없이 사용법을 빠르게 익힐 수 있다.

 

정리하면 운영체제는 컴퓨터의 성능을 높이고(performance), 사용자에게 편의성 제공(Convenience)을 목적으로 하는 컴퓨터 하드웨어 관리하는 프로그램이다.

 

즉, 운영체제의 목적에는 처리능력 향상, 반환 시간 단축, 사용 가능도 향상, 신뢰도 향상 등이 있다. 처리능력, 반환시간, 사용가능도, 신뢰도는 운영체제의 성능을 평가하는 기준이 된다.

  • 처리능력(Throughput) : 일정 시간 내에 시스템이 처리하는 일의 양
  • 반환시간(Turn Around Time) : 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간
  • 사용가능도(Availability) : 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도
  • 신뢰도(Reliabilty) : 시스템이 주어진 문제를 정확하게 해결하는 정도

 

운영체제의 종류

대표적인 컴퓨터 운영체제로는 윈도우(Windows), 맥 OS(Mac OS), 리눅스(Linux), 유닉스(Unix) MS-DOS등이 있다.

 

단일 작업 처리 시스템에는 MS-DOS , 다중 작업 처리 시스템에는 Windows, UNIX, Linux등이 사용된다.

주로 WINDOWS는 개인용 UNIX, Linux는 서버용 운영체제로 사용된다.

 

 

운영체제의 역할 

1. 사용자를 위한 역할

 운영체제는 사용자에게 컴퓨터 시스템을 편리하게 사용할 수 있는 인터페이스를 제공한다. 

운영체제가 없다면 사용자는 컴퓨터에 명령을 할 수 없다. 이렇게 운영체제는 사용자와 컴퓨터간의 커뮤니케이션을 중재한다. 

 

GUI와 CLI가 대표적인 예시이다.

 

GUI와 CLI

 

2. 하드웨어를 위한 역할

 운영체제의 가장 핵심적인 기능은 각종 하드웨어를 관리하는 일이다. 이에 운영체제를 resource manager라고 부르기도 한다.

즉, 운영체제는 컴퓨터 시스템 내의 자원을 효율적으로 관리하는 역할을 한다.

 

1)  프로세스 관리

예를 들어,

컴퓨터를 사용할 때 브라우저를 쓰면서 노래를 듣고 게임까지 하는 경우를 생각해보자.

브라우저, 음악, 게임은 모두 프로세스에 해당한다.

 

컴퓨터의 CPU가 하나인 경우 CPU는 한 번에 한 프로세스만을 처리할 수 있는데도 불구하고 이를 동시에 하고 있다고 느낄 수 있는 이유는 운영체제에서 적절한 방식으로 프로세스들을 관리해주기 때문이다.

 

이와 관련된 내용으로는 시분할 방식, CPU 스케쥴링과 같은 개념들이 있다.

 

2) 메모리 관리

 메모리는 CPU가 직접 접근할 수 있는 컴퓨터 내부의 기억 장치이다.

모든 프로그램은 메모리에 올라와서 실행된다.

 

오늘날에는 여러 프로그램을 동시에 실행시키기 때문에 메모리 관리를 하지 않으면 프로그램끼리 메모리 침범 이슈와 같은 문제들이 생기게 된다. 따라서 이러한 문제 해결을 위해 운영체제에서 메모리를 관리해준다. 또한 한정된 메모리 공간을 가지고 어떤 프로그램에 얼마만큼 메모리를 할당해줄 것인지 역시 관리한다. 

 

물리적 메모리 관리 방식으로는 고정 분할 방식, 가변 분할 방식, 가상 메모리 방식 등이 있다.

 

3) 하드웨어 관리

 운영체제는 사용자의 하드웨어에 대한 직접 접근을 막는다.

 

예를 들어,

사용자가 하드디스크의 특정 영역에 데이터를 직접 저장하려는 경우 중요한 데이터를 덮어써 버릴 위험이 있다.

또한 누군가의 악의적인 공격으로 컴퓨터 시스템에 문제를 일으킬 수 있다.

 

따라서 운영체제는 하드웨어 관리를 직접 하여 사용자의 실수를 방지하고 고의적인 공격에 대한 방어를 합니다.

또한 하드 디스크의 많은 파일들을 효율적으로 저장하고 관리해주는 역할도 수행합니다.

 

운영체제의 역할 정리

1) 프로세스 관리

운영체제에서 작동하는 응용 프로그램을 관리하는 기능이다.

어떤 의미에서는 프로세서(CPU) 관리하는 것이라고 볼 수도 있다. 현재 CPU를 점유해야 할 프로세스를 결정하고, 실제로 CPU를 프로세스에 할당하며, 이 프로세스 간 공유 자원 접근과 통신 등을 관리하게 된다.

 

2) 저장장치 관리

1차 저장장치에 해당하는 메인 메모리와 2차 저장장치에 해당하는 하드디스크, NAND 등을 관리하는 기능이다.

  • 1차 저장장치(Main Memory)
    • 프로세스에 할당하는 메모리 영역의 할당과 해제
    • 각 메모리 영역 간의 침범 방지
    • 메인 메모리의 효율적 활용을 위한 가상 메모리 기능
  • 2차 저장장치(HDD, NAND Flash Memory 등)
    • 파일 형식의 데이터 저장
    • 이런 파일 데이터 관리를 위한 파일 시스템을 OS에서 관리
    • FAT, NTFS, EXT2, JFS, XFS 등 많은 파일 시스템들이 개발되어 사용 중

 

3) 네트워킹

네트워킹은 컴퓨터 활용의 핵심과도 같아졌다.

TCP/IP 기반의 인터넷에 연결하거나, 응용 프로그램이 네트워크를 사용하려면 운영체제에서 네트워크 프로토콜을 지원해야 한다. 현재 상용 OS들은 다양하고 많은 네트워크 프로토콜을 지원한다.

 

이처럼 운영체제는 사용자와 컴퓨터 하드웨어 사이에 위치해서, 하드웨어를 운영 및 관리하고 명령어를 제어하여 응용 프로그램 및 하드웨어를 소프트웨어적으로 제어 및 관리를 해야한다.

 

4) 사용자 관리

우리가 사용하는 PC는 오직 한 사람만의 것일까? 아니다.

하나의 PC로도 여러 사람이 사용하는 경우가 많다.

그래서 운영체제는 한 컴퓨터를 여러 사람이 사용하는 환경도 지원해야 한다.

 

가족들이 각자의 계정을 만들어 PC를 사용한다면, 이는 하나의 컴퓨터를 여러 명이 사용한다고 말할 수 있다.

 

따라서, 운영체제는 각 계정을 관리할 수 있는 기능이 필요하다. 사용자 별로 프라이버시와 보안을 위해 개인 파일에 대해선 다른 사용자가 접근할 수 없도록 해야 한다. 이 밖에도 파일이나 시스템 자원에 접근 권한을 지정할 수 있도록 지원하는 것이 사용자 관리 기능이다.

 

5) 디바이스 드라이버

운영체제는 시스템의 자원, 하드웨어를 관리한다.

시스템에는 여러 하드웨어가 붙어있는데, 이들을 운영체제에서 인식하고 관리하게 만들어 응용 프로그램이 하드웨어를 사용할 수 있게 만들어야 한다.

 

따라서, 운영체제 안에 하드웨어를 추상화 해주는 계층이 필요하다. 이 계층이 바로 디바이스 드라이버라고 불린다.

하드웨어의 종류가 많은 만큼, 운영체제 내부의 디바이스 드라이버도 많이 존재한다.

이러한 수많은 디바이스 드라이버들을 관리하는 기능 또한 운영체제가 맡고 있다.


참고 자료

https://gyoogle.dev/blog/computer-science/operating-system/Operation%20System.html

https://donghak-dev.tistory.com/101

https://computer-science-student.tistory.com/384

https://coding-factory.tistory.com/300

https://velog.io/@codemcd/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9COS-1.-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C%EB%9E%80

728x90
반응형