inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

인프런 워밍업 클럽 CS 3기 1주차 발자국

이지민
0

강의 내용 요약

운영체제


운영체제의 기본 개념

  1. 운영체제의 필요성과 역할

정답은 No 다.

하지만 운영체제가 없으면 컴퓨터는 처음 설계한 대로 동작할 뿐 다른 기능을 수행할 수 없다.

 

  1. 운영체제의 구조

     

    • 커널

      • 프로세서, 메모리, 저장장치를 관리하는 핵심 기능을 담당

      • 사용자는 운영체제의 커널에 직접 접근할 수 없으며 인터페이스(CLI, GUI)를 통해 접근 가능

      • 어플리케이션(게임, 인터넷, MS office, 멜론 뮤직….)은 시스템 콜을 통해 커널에 접근 가능

         

      • 인터페이스(GUI/CLI)는 쉘(Shell)이나 API를 통해 간접적으로 시스템 콜을 이용

        • (인터페이스(GUI/CLI) → 쉘 또는 API → 시스템 콜 → 커널)

      • 시스템 콜은 응용 프로그램이 직접 커널을 호출하는 방식

 

 

컴퓨터 하드웨어

  1. 폰 노이만 구조

  1. CPU 구조

 

4. 인터럽트와 폴링

 

 

프로그램과 프로세스

  1. 프로그램이란?

 

 

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

  1. 유니프로그래밍

     

    • 메모리에 하나의 프로세스가 올라온 것

     

  2. 멀티프로그래밍

     

    • 메모리에 여러 개의 프로세스가 올라온 것

     

  3. 멀티프로세싱

     

    • CPU가 여러 개의 프로세스를 처리하는 것

    • 메모리 관점이 아닌 CPU 관점

     

  4. 현대의 멀티프로그래밍과 멀티프로세싱

 

 

PCB(Process Control Block)

  1. PCB란?

image

 

프로세스 상태

  1. 프로세스 상태가 왜 존재하는가?

  1. 프로세스 상태의 종류

 

image

 

컨텍스트 스위칭(Context Switching)

  1. 컨텍스트 스위칭이란?

 

 

프로세스 생성과 종료

  1. 프로세스의 생성 (0번 프로세스)

     

    • 운영체제는 프로그램의 코드영역과 데이터 영역을 메모리에 로드

    • 빈 스택과 힙을 만들어 메모리 공간을 확보

    • 프로세스를 관리하기 위한 PCB 생성하여 값을 초기화

       

    • 위의 과정은 운영체제가 부팅되고 0번 프로세스가 생성될 때 딱 1번만 실행

     

  2. 프로세스의 복사 (나머지 프로세스)

 

 

 

쓰레드(Thread)

image

CPU 스케줄링

  1. CPU 스케줄링이란?

 

  1. 다중 큐와 프로세스 스케줄링

     

    • 프로세스의 상태 중 준비 상태와 대기 상태는 다중 큐에 의해 관리됨

    • 프로세스가 실행 상태에서 준비 상태로 돌아갈 때 운영체제는 해당 프로세스의 우선순위를 보고 그에 맞는 준비 큐에 넣음

       

    • CPU 스케줄러는 준비 상태의 다중 큐에 들어있는 프로세스들 중에 우선순위가 높은 프로세스를 선택하여 실행 상태로 전환시킴

       

    • 프로세스가 실행 상태에서 I/O 요청을 받아 대기 상태로 오게 되면 I/O 작업 종류에 따라 분류된 큐에 들어가게 됨

       

    • 정확히는 큐에는 프로세스 자체가 아닌 프로세스의 정보를 가지고 있는 PCB가 들어감

     

  2. CPU 스케줄링의 핵심 목표

    • 리소스 사용률 (CPU, I/O 디바이스 등의 사용률을 높이는 것을 목표)

    • 오버헤드 최소화 (복잡하지 않은 스케줄링 방식 채택, 컨텍스트 스위칭 최소화가 목적)

    • 공평성 (모든 프로세스에서 공평하게 CPU가 할당되는 것을 목표)

      • 공평성의 의미는 사용하는 시스템의 환경에 따라 달라질 수 있음

      • ex) 자율주행 자동차의 운영체제는 다른 프로세스보다 자율주행 프로세스에 CPU를 더 많이 할당

      • 위와 같은 특수한 시스템이 아닌 일반 시스템의 경우, 모든 프로세스에게 CPU가 골고루 할당되는 것이 공평

    • 처리량 (단위시간당 더 많은 처리하는 것을 목표)

    • 대기시간 (작업을 요청하고 실제 작업이 이루어지기 전까지 대기시간이 짧은 것을 목표)

    • 응답시간 (사용자의 요청에 빠르게 반응하는 것을 목표)

     

    • 목표 간의 서로 상충하는 부분이 있기 때문에 사용하는 시스템에 따라서 목표를 다르게 설정해야 함

       

    • 일반적인 시스템의 경우 밸런스를 유지하는 것이 중요

     

    4. CPU 스케줄링 알고리즘


자료구조

자료구조와 알고리즘

  1. 자료구조란?

// 배열을 이용해 평균을 구하는 경우

let arr = [87,70,100];
// 데이터를 1개 추가하는 경우
arr.push(55);

let average = 0;

for (let i = 0; i < arr.length; i++) {
	average += numbers[i];
}

average /= arr.length;

 

  1. 알고리즘이란?

 

시간복잡도

  1. 시간복잡도란?

 

배열

  1. 배열의 특징

image

 

 

연결리스트(Linked List)

  1. 연결리스트

image

 

 

  1. 배열 vs 연결리스트

image

 

스택(Stack)

  1. 스택이란?

 

큐(Queue)

  1. 큐란?

 

덱(Deque)

  1. 덱이란?

     

    • 데이터의 삽입과 제거를 head와 tail 두 군데서 자유롭게 할 수 있는 구조 (Double Ended Queue)

    • 덱은 이러한 특징을 가지고 있기 때문에 덱을 이용하면 스택과 큐를 모두 구현할 수 있음

      • 스택 → (head에 데이터 삽입 + head에서 데이터 제거) or (tail에 데이터 삽입 + tail에서 데이터 제거)

      • → (head에 데이터 삽입 + tail에서 데이터 제거) or (tail에 데이터 삽입 + head에서 데이터 제거)

 

해시 테이블(Hash Table)

  1. 해시 테이블이란?

 

  1. 해시 테이블의 장/단점 정리

image

 

셋(set)

  1. 셋이란?

     

image

 


 

일주일 간의 회고

🍷칭찬하고 싶은 점

😅아쉬웠던 점

🛠보완하고 싶은 점

 

커리어 · 자기계발 기타

답변 0