[CS] 운영체제

Becoming a Data Engineer ·2023년 9월 4일
0

CS 지식

목록 보기
1/3
post-thumbnail

본 글은 기술 면접 대비 CS 전공 핵심요약집 (길벗) 을 기반으로 정리한 내용입니다.

1. 운영체제

운영체제란?

하드웨어 위에 설치되어 하드웨어 계층과 다른 소프트웨어 계층을 연결하는 소프트웨어 계층

운영체제의 목적

OS는 하드웨어와 소프트웨어를 이어주는 계층으로써 한정된 자원 안에서 정확하고 빠르게 주어진 문제를 해결하는 것이 목적이다.

2. CPU와 메모리 구조

CPU

CPU는 컴퓨터에서 프로그램을 실행하는 데 필요한 연산을 처리하고 수행한다. 다른 말로는 프로세서(processor) 라고도 한다. 레지스터와 캐시 메모리는 CPU 내부에 위치하는 기억장치다.

  • 레지스터 : CPU가 사용자 요청을 처리하는 데 필요한 데이터를 임시로 저장 (휘발성)
  • 캐시 메모리 : CPU와 RAM 사이의 속도 차이를 해결하기 위한 기억장치 (휘발성)

메모리

메모리는 데이터를 저장하기 위한 기억장치로 휘발성인 주 기억장치와 비휘발성인 보조기억장치가 있다. 주 기억장치는 메인 메모리를 의미하며 일반적으로 RAM을 가리킨다.

  • RAM : 컴퓨터에서 프로그램을 실행할 때 필요한 정보를 저장 (휘발성)
  • 하드 디스크 : 사용자가 필요한 데이터와 프로그램을 저장 (비휘발성)

프로그램을 실행하면 OS가 디스크에 있는 프로그램을 메모리로 로드(load)한다. 메모리에 로드한 프로그램을 프로세스(process)라고 하며, CPU가 처리한다. CPU는 하나의 프로세스만 처리할 수 있어서 멀티 프로세스 환경에서는 OS가 스케줄링을 통해 CPU에 프로세스를 할당한다.

3. 커널과 시스템 콜

커널

  • 커널은 운영 체제의 핵심 부분으로, 하드웨어와 소프트웨어 간의 통신을 관리한다.

    While a kernel is a critical piece, it is NOT the same as an operating system. An engine is the essential "core" of a car, but you can't drive an engine on its own.

  • 하드웨어 리소스를 관리하고, 프로세스 간의 스케줄링을 담당하여 프로그램이 하드웨어를 사용할 수 있도록 한다.
  • 프로세스의 보안, 자원관리(CPU 스케줄링, 메모리/입출력/파일 시스템 관리), HW 추상화 같은 중요한 역할을 수행한다.

쉘 (shell)

사용자와 운영 체제 간의 인터페이스 역할을 하는 사용자가 명령어를 입력하고 실행할 수 있게 해주는 명령어 해석기이다.

쉘은 사용자가 입력한 명령어를 해석하고, 해당 명령어를 실행하기 위해 커널과 상호작용한다. 쉘을 통해 사용자는 커널의 기능을 활용하여 운영 체제를 제어하고 작업을 수행할 수 있다.

시스템 콜

시스템 콜은 사용자 모드에서 커널 모드에 접근해 필요한 기능을 수행할 수 있게 하는 시스템 함수이다. (예. fork(), wait())

운영 체제는 커널 모드와 사용자 모드로 나뉜다. 사용자 모드에서는 커널 모드의 자원에 접근할 수 없게 제한을 둔다. 사용자 모드에서 실행된 프로세스가 자원에 접근하려면 시스템 콜을 호출해 커널에 요청해야 한다.

profile
I want to improve more 👩🏻‍💻

0개의 댓글