ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Chapter09 운영체제 시작하기
    ect/혼자 공부하는 컴퓨터구조 + 운영체제 2025. 7. 21. 21:23

    본 글은 한빛미디어의 '혼자 공부하는 컴퓨터구조 + 운영체제'를 보고 정리한 글입니다

    자세한 내용은 강민철 저자의 '혼자 공부하는 컴퓨터구조 + 운영체제'를 보시기 바랍니다


     

    운영체제란

    자원(시스템 자원): 프로그램 실행에 필요한 요소들

    운영체제: 실행할 프로그램에 필요한 자원을 할당하고 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램

     

    운영체제의 역할

    사용자 영역에 적재된 프로그램들에 자원을 할당하고 올바르게 실행되도록 도움

    운영체제는 컴퓨터 부팅 시 메모리 내 커널 영역(Kernel Space)에 적재되어 실행

    응용 프로그램(사용자가 특정 목적을 위해 사용하는 일반적인 프로그램)은 사용자 영역(User Space)에 적재

    실행할 프로그램을 메모리에 적재하고 더 이상 실행되지 않는 프로그램을 메모리에서 삭제하며 지속적으로 메모리 자원 관리

    응용 프로그램에 자원을 효율적으로 배분하고 실행할 프로그램들이 지켜야 할 규칙을 만들어 컴퓨터 시스템 전체 관리

     

    운영체제를 알아야 하는 이유

    개발자가 만든 대부분의 프로그램은 하드웨어가 실행

    하드웨어를 조작하는 프로그램이 운영체제

    현재 하드웨어 상태, 코드 실행 과정, 하드웨어에서 발생하는 장애 등을 상세히 알림 → 문제해결 실마리 찾기 가능

    운영체제를 깊이 이해하면 운영체제의 말을 이해하고 명령 가능

    하드웨어와 프로그램을 더 깊이 이해

     

    운영체제의 심장, 커널

    커널(Kernel)

    : 운영체제의 핵심 서비스 담당

    : 자원에 접근 및 조작, 프로그램이 올바르고 안전하게 실행하는 기능

    : 어떤 커널을 사용하는지에 따라 개발하는 프로그램이 하드웨어를 이용하는 양상이 달라짐

    : 컴퓨터 전체의 성능 달라짐

     

    사용자 인터페이스(User Interface)

    : 사용자가 컴퓨터와 상호작용할 수 있는 통로

    : GUI(Graphical User Interface)란, 그래픽을 기반으로 컴퓨터와 상호작용하는 인터페이스

    : CLI(Command Line Interface)란, 명령얼르 기반으로 컴퓨터와 상호작용하는 인터페이스

     

    이중 모드와 시스템 호출

    운영체제는 응용 프로그램들이 자원에 접근하려할 때 반드시 자신을 통해서 접근 가능하게 자원을 보호

    운영체제의 문지기 역할은 이중 모드로 구현

    이중 모드란 CPU가 명령어를 실행하는 모드를 크게 사용자 모드, 커널 모드로 구분하는 방식

     

    사용자 모드

    : 운영체제 서비스를 제공받을 수 없는 실행 모드, 즉 커널 영역의 코드 실행 불가

    : 일반적인 응용 프로그램은 사용자 모드 실행

    : 사용자 모드로 실행되는 일반적인 응용 프로그램은 자원에 접근 불가

     

    커널 모드

    : 운영체제 서비스를 제공받을 수 있는 실행 모드, 즉 커널 영역의 코드 실행 가능

    : 자원 접근 가능

     

    시스템 호출

    : 사용자 모드로 실행되는 프로그램이 자원에 접근하는 운영체제 서비스를 제공받기 위해선 커널 모드로 전환 필요하므로 운영체제에 요청을 보내는 것

    : 일종의 소프트웨어 인터럽트

     

    일반적으로 응용 프로그램은 실행 과정에서 운영체제 서비스들은 매우 빈번하게 이용

    해당 과정에서 빈번하게 시스템 호출을 발생시키며 사용자 모드와 커널 모드를 오고 가며 실행

     

    운영체제의 핵심 서비스

    프로세스 관리

    프로세스란 실행 중인 프로그램

    CPU는 한 프로세스를 실행하다가 다른 프로세스로 실행 전환하고 실행하다 또 다른 프로세스로 실행을 전환하는 것을 반복

    운영체제는 다양한 프로세스를 관리하고 실행 가능해야 됨

    프로세스 동기화(여러 프로세스가 동시에 실행되는 환경)가 필수적이며 교착 상태(프로세스가 더 이상 실행X)를 해결해야 함

     

    자원 접근 및 할당

    모든 프로세스는 실행을 위해 자원 필요

    운영체제는 프로세스들이 사용할 자원에 접근 및 조작하며 프로세스에 필요한 자원 할당

     

    CPU

    : 운영체제는 프로세스들에 공정하게 CPU 할당

    : CPU 스케줄링이란, 어떤 프로세스로부터 CPU를 사용할지 얼마나 오래 CPU를 점유하게 할지 결정하는 것

     

    메모리

    : 운영체제는 새로운 프로세스가 적재될 때마다 어느 주소에 적재해야할지 결정

     

    입출력장치

    : 인터럽트 서비스 루틴은 커널 영역

    : 운영체제는 인터럽트 서비스 루틴을 제공함으로써 입출력 작업 수행

     

    파일 시스템 관리

    파일 열기, 생성, 삭제 등과 디렉토리 등의 관리는 filesystem으로 운영체제가 지원하는 핵심 서비스

     

    댓글

© Ryutrojina