운영체제란?

2023. 3. 18. 21:38컴퓨터구조와 운영체제

728x90

운영체제에 대해 깊이 공부하기 전에, 운영체제가 어떤 것인 지 대략적으로 알아보도록 하겠습니다.


운영체제란?

 

쉽게 말해서, 컴퓨터의 자원을 ‘잘’ 사용하기 위한 소프트웨어이다.

‘잘’ 사용하는 것이랑 ‘운영체제’랑 어떤 관련이 있는 것인가??

 

바로 CPU가 1개이기때문이다!!

(멀티코어 CPU라고 해도 CPU보다 프로세스가 훨씬 더 많기 때문에 맥락상 큰 차이는 없다.)

 

CPU가 1개이기때문에 하나의 CPU가 여러 소프트웨어를 처리해야한다.

 

그렇다면, CPU는 ‘어떤 방식’으로 여러 소프트웨어를 처리할 것 인가?

여기서의 ‘어떤 방식’이 운영체제이다!

 

그러면 운영제제는 구체적으로 어떤 일을 하는 것일까?


운영체제의 기능

 

운영체제는 많은 기능이 있지만 크게보면 아래 3가지이다.

 

  • 프로세스 관리
    • 프로세스 적재,실행,종료
    • 새 프로세스 생성
    • 프로세스 스케줄
    • 프로세스 동기화
  • 메모리 관리
    • 메모리 할당/반환
    • 메모리 보호
    • 디스크 영역으로 메모리 영역 확장(가상 메모리)
  • 파일 시스템 관리
    • 파일 생성/삭제
    • 파일 열기/닫기
    • 파일 읽기/쓰기
    • 파일 저장 위치 관리
    • 파일 속성 등 정보 관리
    • 디스크의 빈 영역 등 저장 장치 관리

 

 


 

운영체제의 구조

운영체제는 크게 커널, 인터페이스, (Device driver)로 나뉜다.

 

커널

커널은 운영체제의 핵심이다.

  • 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심적인 기능을 모아놓은 것이다.
    • 따라서, 외부로 부터 직접 노출이 되면 안된다. 
    • 'System call' 이 만들어진 이유
  • 응용 소프트웨어들은 커널에 요청함으로서 하드웨어 자원들을 이용하게 된다.

System call : 커널이 자신의 기능을 함수 형태로 제공해주는 것

Systemcall을 통해 입력값의 검증, 권한 확인, 작업 순서 제어등을 수행하여 커널을 보호해준다.

 

인터페이스

  • 커널에 명령을 전달하고, 실행 결과를 알려주는 역할

 

Device driver

  • 커널과 하드웨어의 중간에 위치
  • 하드웨어에 대한 인터페이스

 

'운영체제가 다르면 프로그램의 호환이 안 된다.'는 말을 많이 들어봤을 것 이다.

왜?? 운영체제가 다르면 프로그램이 호환이 되지 않을 까??

 

 

바로!!

운영체제마다 제공하는 API 및 시스템 콜의 모양이 다르기 때문이다.

 


여기서, 잠시 다른 길로 새자면.. Java를 공부하다보면 Java의 장점 중 하나가 '이식성'이다.

사실 운영체제를 공부하기 전까지 크게 와닿지 않았는 데, 운영체제를 공부하다보니 왜 Java의 장점 중 하나가  '이식성'인 지 알 게 됬다.


 

포스팅을 읽어주셔서 감사합니다!

 

728x90