[CS] 운영체제

또띠·2023년 11월 28일
0

CS

목록 보기
2/7

운영체제란?

흔히 부르는 OS(Operating System) 으로, 컴퓨터 시스템의 자원을 관리하고 사용자가 컴퓨터를 사용할 수 있는 환경을 제공하는 역할을 수행한다.

대표적으로 윈도우(window), 맥OS(macOS), 리눅스(Linux), 유닉스(Unix) 등이 있다.


운영체제의 4가지 목적

  1. 처리 능력(throughtput) 향상: OS는 자원 관리를 통해 일정 시간 내에 시스템이 처리하는 일의 양을 향상 시킨다.

  2. 반환 시간(turnaround time) 단축: OS는 사용자가 시스템에 요청한 작업을 완료할 때까지 소요되는 시간을 단축시킨다.

  3. 사용 가능도(availability) 향상: 사용 가능도는 시스템 자원을 얼마나 빨리 제공할 수 있는가를 의미한다. OS는 사용자가 컴퓨터를 사용해야 할 때 자원을 즉시 사용할 수 있게 한다.

  4. 신뢰도(reliablity) 향상: 신뢰도는 시스템이 주어진 문제를 정확하게 푸는지를 의미한다. OS는 입력 값에 대한 정확한 결과 값을 줄 수 있도록 신뢰도를 향상해야 한다.


CPU와 메모리 구조

CPU(Central Processing Unit) 는 다른 말로 프로세서(processor)라고 한다.
컴퓨터에서 프로그램을 실행하는데 필요한 연산을 처리하고 수행한다.

메모리 는 데이터를 저장하기 위한 기억장치로 휘발성 메모리인 주 기억장치와 비휘발성 메모리인 보조 기억장치가 있다. 주 기억장치는 메인 메모리를 의미하며 일반적으로 RAM을 가리킨다. 보조 기억장치는 SSD(Solid State Drive), HDD(Hard Disk Drive) 등이 해당한다.

메모리는 CPU에서 빨리 접근할 수 있도록 계층 구조로 나뉜다. 프로그램을 실행하면 OS가 디스크에 있는 프로그램을 메모리로 로드한다. 메모리에 로드한 프로그램을 프로세스라고 하며, CPU가 처리한다.
CPU는 하나의 프로세스만 처리할 수 있어서 멀티 프로세스 환경에서는 OS가 스케줄링을 통해 CPU에 프로세스를 할당한다.

  • 레지스터(register): CPU가 사용자 요청을 처리하는데 필요한 데이터를 임시로 저장하는 기억장치로 CPU 내부에 존재하며 접근 속도가 빠르다.

  • 캐시 메모리(cache memory): CPU와 RAM 사이의 속도 차이를 해결하기 위한 기억장치로 CPU 내부에 존재하며 접근 속도가 레지스터 다음으로 빠르다.

  • RAM(Random Access Memory): 컴퓨터에서 프로그램을 실행할 때 필요한 정보를 저장한다. CPU에서 접근 속도가 하드 디스크보다 빠르고, 휘발성 기억장치이다. 보통 메모리라고 할 때 RAM을 의미하는 경우가 많다.

  • 하드 디스크(Hard disk): 사용자가 필요한 데이터와 프로그램을 지정하고, 비휘발성 기억장치이다.


커널과 시스템 콜

커널은 OS의 핵심 요소로, 자원 관리를 위해 CPU 스케줄링, 메모리 관리, 입출력 관리, 파일 시스템 관리 등을 담당한다.

운영체제는 커널에서 관리하는 중요 자원에 사용자가 쉽게 접근하지 못하도록 커널 모드(Kernel mode)사용자 모드(user mode) 로 모드를 나눈다. 커널모드에서는 하드웨어에 직접 접근해 메모리, CPU와 같은 자원을 사용할 수 있다. 사용자 모드에서는 커널 모드의 자원에 접근할 수 없게 제한을 둔다.

사용자 모드에서 실행된 프로세스가 자원에 접근하려면 시스템 콜을 호출해 커널에 요청해야 한다.

시스템 콜은 사용자 모드에서 커널 모드에 접근해 필요한 기능을 수행할 수 있게 하는 시스템 함수다.
커널은 시스템 콜로 받은 요청을 처리한 후 다시 시스템 콜로 결과 값을 반환한다.

시스템 콜을 사용해 프로세스 제어, 파일 조작, 장치 관리, 데이터의 유지 보수, 통신, 보호를 할 수 있다.
대표적인 예로는 프로세스를 생성하는 fork(), 부모 프로세스가 자식 프로세스의 수행을 기다리는 wait() 등이 있다.

profile
✨ 𝑬𝒗𝒆𝒓𝒚𝒕𝒉𝒊𝒏𝒈 𝒄𝒐𝒎𝒆𝒔 𝒕𝒐 𝒉𝒊𝒎 𝒘𝒉𝒐 𝒉𝒖𝒔𝒕𝒍𝒆𝒔 𝒘𝒉𝒊𝒍𝒆 𝒉𝒆 𝒘𝒂𝒊𝒕𝒔. ✨

0개의 댓글