inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[인프런 워밍업 클럽 CS 2기] 1주차 발자국 - 운영체제

Yeoonnii
1

[ Section 1. 운영체제 들어가기 ]

1. 운영체제 개요

운영체제가 사용되는 곳

컴퓨터는 운영체제 없이 동작 가능할까?

→ 가능하다. 그러나 운영체제가 없는 경우 기본적으로 세팅된 기능만 사용 가능하며 추가적인 기능을 사용할 수 없다.

예시) : 전화기는 기본으로 제공되는 기능만 사용가능 📱 : 스마트폰은 운영체제가 내장되어 다양한 기능들을 추가적으로 사용할 수 있음

운영체제가 하는 일

프로세스 관리, 메모리 관리, 하드웨어 관리, 파일 시스템 관리

 

3. 운영체제의 구조

커널

프로세스, 메모리, 저장장치를 관리하는 운영체제의 핵심 기능

사용자와 커널간의 인터페이스

시스템 콜

→ 시스템 콜은 사용자와 커널 간의 상호작용을 보호하기 위한 인터페이스이며, 사용자와 애플리케이션은 시스템 콜을 통해 커널과 소통한다.

GUI/CLI 방식

 

4. 컴퓨터 하드웨어와 구조

폰 노이만 구조

프로그램 내장 방식

폰 노이만 구조의 핵심 개념으로, 프로그램 명령어와 데이터를 메모리에 함께 저장하는 방식임.

CPU(Central Processing Unit) 구성장치

(1) 산술논리 연산장치 : CPU에서 실제로 데이터 연산 담당

(2) 제어장치 : 모든 장치들의 동작을 지시하고 제어

(3) 레지스터 : CPU내에서 계산을 위해 임시로 값을 보관하는 장치 → 변수와 같은 기능

메모리 종류

RAM (Random Access Memory)

ROM (Read Only Memory)

 

5. 컴퓨터의 부팅과정

  1. 컴퓨터의 전원을 누른 경우 ROM에 저장된 바이오스가 실행됨

(1) 바이오스가 주요 하드웨어에 이상이 없는지 확인

a. 이상이 있는 경우 오류음을 내며 부팅이 이루어 지지 않음

b. 이상이 없는 경우 마스터 부트 레코드에 저장된 부트로더를 메모리로 가져와서 실행함

(2) 부트로더 실행

a. 운영체제가 여러개인 경우 실행할 운영체제 선택

b. a.에서 운영체제를 선택했거나 운영체제가 하나인 경우 운영체제를 메모리로 불러옴

(3) 운영체제 실행

운영체제 실행 이후 실행되는 모든 응용 프로그램은 메모리에 올라와서 실행되며 운영체제가 관리함

 

6. 인터럽트

폴링방식

인터럽트

인터럽트 방식


[ Section 2. 프로세스와 쓰레드 ]

1. 프로그램과 프로세스

프로그램(Program)이란?

프로세스(Process)란?

프로세스의 구조

1) Code 영역, 2) Data 영역, 3) Stack 영역, 4) Heap 영역

 

2. 멀티프로그래밍과 멀티프로세싱

유니 프로그래밍(Uniprogramming)

멀티 프로그래밍(Multiprogramming)

멀티 프로세싱(Multiprocessing)

시분할 처리

 

3. PCB (Process Control Block)

PCB

PCB의 구조

포인터, 프로세스 상태, 프로세스 ID, 프로그램 카운터, 레지스터 정보, 메모리 관련 정보, CPU 스케줄링 정보

 

4. 프로세스 상태

프로세스는 시분할 시스템을 처리하기 위한 다섯가지 상태를 가지고 있다.

1) 생성 (New)

2) 준비 (Ready)

3) 실행 (Running)

4) 대기 (Waiting)

5) 완료 (Terminated)

 

5. 컨텍스트 스위칭

컨텍스트 스위칭 (Context Switching)

컨텍스트 스위칭 발생 이유

 

6. 프로세스 생성과 종료

프로세스 생성 과정

  1. .exe 파일 실행시

  2. 운영체제가 코드영역과 데이터 영역을 메모리에 로드 +

    빈 스택과 빈 힙을 만들어 공간 확보

  3. 프로세스 관리를 위한 PCB를 만들어서 값을 초기화 해준다.

프로세스 종료

좀비 프로세스

 

7. 쓰레드 (Thread)

프로세스의 문제점

운영체제는 프로세스 단위로 작업을 처리하며, 각 프로세스는 독립됩 메모리 공간(코드, 데이터, 힙, 스택)을 사용한다.

하지만 여러 프로세스가 실행될수록 다음과 같은 단점들이 발생한다.

쓰레드 (Thread)

프로세스의 단점을 보완하기 위해 등장

하나의 프로세스 내에서 실행되는 단위이며, 1개 이상의 쓰레드가 존재할 수 있음

프로세스와 쓰레드의 장단점

쓰레드는 효율적인 자원 사용빠른 통신을 가능하게 하지만, 안정성 면에서는 프로세스 방식이 더 유리하다.


[ Section 3. CPU스케줄링 ]
1. CPU 스케줄링 개요

CPU 스케줄링

운영체제가 모든 프로세스에게 CPU를 할당/해제 하는 것

CPU Burst 와 I/O Burst

CPU Burst (연산)

컴퓨터가 연산하는 시간

I/O Burst (입출력 작업)

컴퓨터가 입출력을 기다리거나 처리하는 시간

 

2. 다중

프로세스 상태에서 준비(Ready)상태와 대기(Waiting)상태의 프로세스는 큐(Queue)라는 자료구조로 관리된다.

큐(Queue) 자료구조

 

3. 스케줄링 목표

1) 리소스 사용률

2) 오버헤드 최소화

3) 공평성

4) 처리량

5) 대기시간

6) 응답시간

 

4. FIFO (First In First Out) 알고리즘

FIFO (First In First Out)

FIFO 알고리즘의 단점

평균 대기 시간

알고리즘 · 자료구조 인프런워밍업클럽 운영체제 CS

답변 0