뚝딱햄 탈출기

[CS] 운영체제 : 프로세스, 스레드, 커널, 셸 본문

CS + OS

[CS] 운영체제 : 프로세스, 스레드, 커널, 셸

hyrmzz1 2023. 7. 25. 20:56
EliceAcademy - <실전 압축 컴퓨터 개론> 02. 운영체제 강의 내용 정리

1. 운영체제(OS, Operating System)

운영체제는 시스템 소프트웨어에 속함.

1-1. 소프트웨어

응용 소프트웨어

특정 작업을 수행하기 위해 설치하는 소프트웨어.
ex) 웹 브라우저, 워드프로세서, 게임 등

시스템 소프트웨어

하드웨어와 상호작용하며 컴퓨터 시스템을 관리해주는 소프트웨어.
ex) 운영체제, 컴파일러, 인터프리터

1-2. 운영체제

  • 하드웨어와 소프트웨어를 관리하고 제어하는 소프트웨어
  • 컴퓨터의 자원을 효율적으로 관리해주는 프로그램

1-3. 자원(resource)

컴퓨터가 동작하기 위해 필요한 모든 것.
ex) CPU나 메모리와 같이 컴퓨터 시스템 내에 존재하는 물리적 부품

2. 프로세스와 스레드

2-1. 프로그램

  • 명령어가 실행되는 순서의 집합
  • 작성한 코드가 하나의 프로그램이 되고, 프로그램은 단순히 파일로서 보조기억장치인 hdd, ssd에 저장됨.
    파일 실행시 메모리(주기억장치. 특히 RAM)에 프로그램이 저장되어 실행됨.
    처리장치(ex. CPU)가 처리해야 할 데이터는 RAM과 같은 주기억장치에서 가져온다. 주기억장치의 데이터는 하드디스크와 같은 보조기억장치에서 복사해오거나 키보드와 같은 입력장치로부터 받아온 것이다.

2-2. 프로세스

  • 운영체제는 프로세스를 관리하는 프로그램.
  • 프로세스는 컴퓨터에서 현재 실행 중인 프로그램으로, 운영체제에 의해 cpu, 메모리와 같은 자원을 할당받아 실행됨.
    (즉, 현재 실행 중인 프로그램은 운영체제에 의해 자원을 할당받은 상태.)

2-3. 스레드

  • 프로세스 내에서 실행되는 작업(흐름)의 단위
  • 하나의 프로세스는 하나 이상의 스레드로 이루어져 있음

문서 작업이라는 하나의 프로세스는
문서 작업 화면 출력하는 스레드와 마우스나 키보드로 입력받는 스레드 등으로 구성.

메모장은 싱글 프로세스, 크롬 브라우저의 각각의 탭은 하나의 독립적 공간에서 실행되는 각각의 프로세스이므로 멀티 프로세스.

3. 운영체제의 역할

  • 메모리 관리
    • 프로그램이 메모리에 저장되는 주소 할당
    • 보조기억장치에 저장된 프로그램을 주기억장치로 가져올 때 프로그램을 주기억장치의 어느 곳에 할당할지 정함. 
      • +) 가상 메모리
        • 프로그램이 실제 실행되는 부분만 메모리에 저장해 물리적인 메모리의 크기보다 큰 프로그램 실행할 수 있도록 해줌.
        • 따라서 사용자 입장에선 실제 메모리 크기보다 더 큰 메모리를 사용하는 것처럼 보임.
        • 페이징은 가상 메모리와 실제 메모리를 관리하는 기법 중 하나.
  • 프로세스 관리
    • (여러) 프로세스가 실행되는 순서 관리. (= 프로세스 스케줄링) - 정처기 내용 넣기
    • 프로세스 스케줄링은 멀티태스킹에서 사용함.
      멀티태스킹이란 여러 개의 작업을 동시에 실행하는 것.
  • 네트워크 자원에 대한 관리
  • 파일과 디렉터리(폴더)를 생성, 복사, 삭제하는 파일 시스템 관리
  • 입출력 장치의 관리를 통한 입출력 작업
  • 사용자 인증, 방화벽 등 보안 및 인증

4. 커널(Kernel)과 셸(Shell)

하드웨어~Shell까지가 운영체제(→ 시스템 소프트웨어).
Application은 응용 소프트웨어.

4-1. 커널

  • 하드웨어와 소프트웨어의 인터페이스.
  • 프로세스 스케줄링, 메모리 관리, 입출력 제어, CPU, Memory, Device 등 운영체제의 핵심 기능 담당.
  • 다양한 프로세스의 실행순서(→ 프로세스 스케줄링) 및 자원 관리.

4-2. 셸

  • 커널과 사용자 간 인터페이스 역할.
    따라서 사용자는 shell을 활용해 커널에 명령을 입력할 수 있음.
  • 사용자가 입력한 명령어를 해석해 커널에 전달하고, 커널이 실행한 결과는 사용자에게 출력함. "명령어 해석기"
  • ex. CMD, powershell
  • 두개의 프로세스가 동시에 자원에 접근했을 때 발생할 수 있는동기화 문제를 관리해줌.
Comments