카테고리 없음

운영체제(OS)?

sorecord 2024. 10. 20. 14:29

운영체제(Operating System)

컴퓨터 시스템의 핵심 소프트웨어로, 컴퓨터 하드웨어와 응용 프로그램 간의 상호작용을 관리하고 제어하는 역할이다.

 

컴퓨터 하드웨어(?) 를 프로그램이 관리한다? 


운영체제의 목적

사용하는 가장 주된 목적은 컴퓨터의 하드웨어를 관리하는 것이다. 컴퓨터에는 수많은 하드웨어가 존재한다. CPU, 메모리, 디스크, 키보드, 마우스, 모니터, 네트워크 등이 있으며 묶어서 컴퓨터 자원(resource)라고 한다.

위의 하드웨어를 잘 관리해주어야 컴퓨터의 효율적 사용이 가능하고 OS의 성능이 좋을 수록 컴퓨터 성능도 좋아진다.

 

또한, 사용자에게 편의를 제공하는 목적도 가지고 있다.  운영체제가 없다면 위에서 말한 하드웨어에 관한 모든 관리를 사용자가 해야한다.

예> 유저들은 구글이나 카카오톡같은 프로그램을 사용하거나, 키보드를 입력하는 등의 작업을 할 때, 동작원리가 어떻게 되는지 알지 못해도, 프로그램이 알아서 연동되는 것처럼 이러한 것들을 OS가 다 관리를 해주는 것이다.

 

컴퓨터 시스템 간략도

 


운영체제의 구조 

크롬, 엑셀, 카카오톡 같은 프로그램과 실제 하드웨어 사이에 통신을 시켜주는 것을 운영체제(OS)이다.

운영체제는 커널, 인터페이스, 시스템 콜, 드라이버 총 4가지 구성요소로 이루어져있다.

 

커널(Kernel)

 

커널은 운영체제의 핵심 부분으로, 시스템 자원(프로세서, 메모리, 저장 장치 등)을 즉, 컴퓨터에 속한 모든 자원을 관리하는 소프트웨어이다. 커널은 하드웨어와 응용 프로그램 간의 중개 역할을 수행하며, 운영체제의 기본 기능을 담당한다.

 

주 역할

  • 프로세스 관리: 시스템에서 실행 중인 프로그램(프로세스)을 생성, 스케줄링, 종료하는 역할을 한다. 커널은 CPU 시간을 각 프로세스에 분배하여 다중 작업을 가능하게 한다.                                                                                                 예> 사용자가 웹 브라우저, 텍스트 에디터, 음악 플레이어를 동시에 실행중이다. 이때 커널은  각 프로그램이 CPU를 사용할 수 있도록 스케줄링 사용자가 여러 작업을 동시에 수행할 수 있게 한다.
  • 메모리 관리: 프로그램이 사용하는 메모리(주기억장치)를 관리한다. 커널은 각 프로세스에 필요한 메모리를 할당하고, 사용이 끝난 메모리를 회수한다.                                                                                                                                        예> 텍스트 에디터에서 문서를 작성할때 커널이 이 프로그램에 메모리를 할당한다. 문서가 저장되거나 종료되면 해당 메모리를 회수 후 다른 프로그램이 사용할 수있게 한다.
  • 저장공간 관리: 파일 시스템을 통해 데이터를 저장하고 읽을 수 있도록 한다. 커널은 하드 드라이브와 같은 저장 장치에서 파일을 관리한다.                                                                                                                                                    예>  파일을 읽기 위해 사용자가 열기를 클릭하면, 커널은 해당 파일을 찾아 메모리로 로드한다.
  • 장치 관리: 컴퓨터에 연결된 하드웨어 장치(프린터, 키보드, 마우스 등)를 제어하고, 장치와의 통신을 관리한다. 커널은 장치 드라이버를 통해 하드웨어와 소프트웨어 간의 상호작용을 조정한다.                                                                      예> 프린터로 인쇄하려고 할때, 커널은 프린터 드라이버를 통해 프린터와 통신해 인쇄작업을 수행한다. 

인터페이스(Interface)

인터페이스는 사용자가 컴퓨터와 소통할 수 있도록 돕는 요소이다.사용자의 명령을 컴퓨터에 전달하고, 그 결과를 사용자에게 알려주는 역할이다.

 

인터페이스는 대표적으로 2가지 종류가 있다.


GUI(Graphical User Interface)

아이콘, 버튼, 메뉴 등 그래픽 요소를 사용하여 사용자와 컴퓨터 간의 상호작용을 가능하게 하는 인터페이스이다.

 

대표적으로, 아이콘과 마우스 클릭이 되게끔 만들어져서 사용자 편의성을 가진 윈도우 바탕화면이 있다. 


CLI(Command Line Interface)

텍스트 기반의 인터페이스로, 사용자가 명령어를 키보드로 입력하여 컴퓨터와 상호작용하는 방식이다. 터미널로 연결하면, 마우스가 없고 명령어를 키보드로 입력하면 글씨만 나오는 인터페이스다

 

대표적으로, 리눅스, MacOS, 윈도우 Command Prompt 창을 말한다. 

 

GUI보다 뛰어난 장점? => 기술적인 사용자가 더 복잡한 작업을 효율적으로 수행이 가능하며 스크립트를 통해 자동화 가능


시스템 콜(System Call)

시스템 콜은 사용자나 프로그램이 직접적으로 컴퓨터 자원에 접근하는 것을 막고 커널을 보호하기 위해서 만든 코드 집합이다. 즉, 사용자와 커널 간의 안전한 소통방식을 제공하며 커널의 보호를 위해 설계되었다.

 

시스템 콜 함수를 통해 커널에 접근할 수 있다.(사용자가 직접적으로 하드웨어 자원에 접근이 불가능하기에)

 

주 역할

  • 보안 및 안정성: 시스템 콜은 커널의 직접적인 접근을 제한하여, 사용자 프로그램이 시스템에 악영향을 미치지 않도록 한다. 
  • 자원 관리: 시스템 콜을 통해 프로그램은 파일 읽기/쓰기, 메모리 할당, 프로세스 생성 및 종료 등의 작업을 요청할 수 있다. 커널은 이러한 요청을 처리하고, 필요한 자원을 할당한다.

예>

파일관리 => open() , read(), write()

프로세스 관리 => fork(), exec(), wait ()

메모리 관리 => malloc (), free ()


왜 시스템 콜 함수를 통해서만 접근이 가능할까?

커널이라는 굉장히 중요한 여러가지 코드나 중요한 내용이 있는데, 그걸 아무나 접근할 수 있게 만들면, 중요한 걸 누가 바꾸거나 할 수 있게 때문이다.


시스템 콜 작동과정

  1. 요청: 사용자가 프로그램에서 시스템 콜을 호출하면, 프로그램은 해당 요청을 커널에 전달한다.
  2. 전환: 커널 모드로 전환되어 요청된 작업을 수행한다. 이 과정에서 커널은 요청의 유효성을 확인하고, 필요한 자원을 할당한다.
  3. 응답: 작업이 완료되면, 커널은 결과를 사용자 프로그램에 반환한다.

드라이버(Driver)

드라이버는 프린터, 키보드 및 디스크 드라이브와 같은 하드웨어 장치와 운영체제 간의 통신을 가능하게 하는 소프트웨어이다.

 

하드웨어 장치는 고유한 작동방식과 프로토콜을 가지고 있기 떄문에 드라이버를 통해 운영체제가 해당 장치와 소통할 수 있도록 도와준다. 


주 역할

  • 하드웨어 제어: 드라이버는 하드웨어 장치의 기능을 제어하고, 운영체제가 해당 장치를 사용할 수 있도록 한다. 예를 들어, 프린터 드라이버는 프린터의 인쇄 기능을 제어한다.
  • 명령 변환: 운영체제가 이해할 수 있는 명령어를 하드웨어가 이해할 수 있는 형식으로 변환한다. 이는 하드웨어의 특수한 동작 방식을 고려하여 이루어진다.
  • 장치 상태 관리: 드라이버는 하드웨어 장치의 상태를 모니터링하고, 필요한 경우 오류를 처리하거나 상태 정보를 운영체제에 전달한다.

예시>

프린터 드라이버( 특정 프린터 모델에 맞춰 설치, 인쇄 명령을 프린터가 이해할 수 있는 형식으로 바꿈)

그래픽 카드 드라이버, USB 드라이버 등...

 

프린터라고 하는 기계는 컴퓨터가 일반적으로 이해하는 구조랑 좀 다르게 생겼다. 특수한 목적을 가지고 있는 하드웨어이기 떄문이다. 그래서 드라이버를 설치함으로써 그 디바이스와 소통을 할 수 있게 만들어주는 것이다.

 


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

 

[운영체제(OS)] 1. 운영체제란?

운영체제(Operating System)는 사용자가 컴퓨터를 사용하기 위해 필요한 소프트웨어이다. 우리가 일반적으로 컴퓨터를 사용하면서 실행한 모든 프로그램들은 운영체제에서 관리하고 제어한다. 대표

velog.io

 

https://coduking.tistory.com/entry/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9COS%EB%9E%80-%EA%B0%9C%EB%85%90%EA%B3%BC-%EA%B5%AC%EC%A1%B0%EC%BB%A4%EB%84%90-%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%BD%9C-%EB%93%B1

 

운영체제(OS)란? 개념과 구조(커널, 시스템콜 등)

운영체제(Operating Systems, OS)란? 운영체제(OS)란 유저가 컴퓨터를 편하게 사용할 수 있게 모든 하드웨어 자원을 관리해주는 프로그램이다. 모든 하드웨어 자원을 관리? 그게 무슨 말일까? 하드웨어

coduking.tistory.com

 

https://jerryjerryjerry.tistory.com/171

 

[운영체제] 운영체제(OS)란?

운영체제(OS) 운영체제(OS, Operating System)는 컴퓨터 시스템의 핵심 소프트웨어로, 컴퓨터 하드웨어와 응용 프로그램 간의 상호작용을 관리하고 제어하는 역할을 한다. 운영체제의 목적은 사용자와

jerryjerryjerry.tistory.com


 

공부용으로 작성한 글이며 문제시 비공개처리하도록 하겠습니다. 피드백 환영합니다.