inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

인프런 워밍업 클럽 - CS Week 2

Taeho
2

Algorithm

Recursion(재귀)

Call Stack(= Stack)

재귀함수를 사용하는 이유

재귀함수를 쉽게 작성하는 방법

재귀 사용하는 패턴

단순 반복문

하향식 계산


CPU Scheduling Algorithm

SJF(Shortest Job First)

문제점

RR(Round Robin)

단점

MLFQ(Multi Level Feedback Queue)

OS는 어떻게 CPU Bound Process와 I/O Bound Process를 구분할까?

구현 방법

Process간 통신

Pipe

File

Thread를 이용한 통신

Network

공유자원과 임계구역

상호배제 요구사항

  1. 임계영역엔 동시에 하나의 프로세스만 접근한다.

  2. 여러 요청에도 하나의 프로세스의 접근만 허용한다.

  3. 임계구역에 들어간 프로세스는 빠르게 나와야한다.

Semaphore

기본 연산

종류

장단점

Mutex(MUTual EXclusion)

기본 연산

뮤텍스와의 차이

Monitor

교착상태

발생 원인

해결방법

교착상태 회피

은행원 알고리즘
작동 원리
주요 개념
단점

교착상태 검출

가벼운 교착 상태 검출

교착상태 해결 방법

무거운 교착 상태 검출

Programming Language

프로세스의 영역

Compile 언어가 Process가 되는 방법

  1. 개발자가 코드 작성

  2. 전처리 단계 실행

    • 개발자가 작성한 코드를 확인하고 전처리 구문을 처리한다.

    • C에서는 #이라는 키워드로 선언된다.
      ex) #include<stdio.h>, #define MY_NUMBER 100

    • 코드에 있는 모든 주석은 삭제된다.

    • 결과물로 .i 파일이 생성된다.

  3. 전처리기에서 나온 결과파일을 컴파일러가 처리한다.

    • 컴파일러는 .i 파일을 기계어에 가까운 어셈블리어로 변환시킨다.

    • 결과물로 .s 파일이 생성된다.

  4. 어셈블러 작업이 수행된다.

    • 오브젝트 파일.o로 변환된다.

    • 오브젝트 파일은 0과 1로 구성되어 있다.

    • 코드영역과 데이터 영역이 나뉘어져 있다.

  5. 링커 작업이 수행된다.

    • 모든 오브젝트 파일을 하나의 코드 영역과 데이터 영역으로 묶어준다.

    • 실제로 실행될 주소를 매핑시켜준다.

    • 결과물로 .exe 파일이 생성된다.

  6. 사용자가 .exe파일을 실행시키면 OS가 프로세스를 생성한다.

    • OS는 파일에 있는 코드 영역과 데이터 영역을 가져와 프로세스의 코드 영역과 데이터 영역에 넣어주고, 빈 상태의 스택과 힙을 할당한다.

    • PCB를 만들어 프로세스를 관리가 가능하게 한다.

    • PC(프로그램 카운터)에 다음 실행할 명령어의 주소를 생성한 프로세스의 코드영역의 첫번째 주소로 설정한다.
      → OS의 CPU 스케줄링에 따라서 프로세스가 실행되다가 작업을 마친다.

메모리 종류

레지스터

캐시

보조 저장장치(HDD, SSD)

메인 메모리

32bit CPU, 64bit CPU

물리 주소 & 논리 주소

경계 레지스터

절대 주소 & 상대 주소

재배치 레지스터

메모리 할당 방식

메모리 오버레이

Swap

가변 분할 방식(= Segmentation, 세그멘테이션)

장점

단점

고정 분할 방식(= Paging, 페이징)

장점

단점

내부 단편화

외부 단편화

조각모음

버디 시스템

장점


Retrospect

잘한 점

알고리즘 · 자료구조 워밍업클럽 CS전공지식 Week2

답변 0