inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

Yeoonnii
1

5. SJF (Shortest Job First)

 

6. RR (Round Robin)

타임 슬라이스/타임 퀀텀

최적의 타임 슬라이스를 결정하는 방법

 

7. MLFQ(Multi Level Feedback Queue)


[ Section 4. 프로세스 동기화 ]

1. 프로세스 간 통신

프로세스간 통신의 종류

1) 파일과 파이프를 이용한 통신

2) 하나의 프로세스 내부에서 쓰레드를 이용한 통신

3) 네트워크를 이용한 통신

2. 공유자원과 임계구역

공유자원이란?

프로세스 통신시 공통으로 이용하는 변수나 파일

프로세스의 접근 순서에 따라 결과가 달라질 수 있다.

동기화 문제

프로세스 통신시 공유자원의 연산 결과를 예측 할 수 없고 어떤 프로세스가 먼저 실행될지 예측 할 수 없는 문제

임계구역(Critical Section이란?

여러 프로세스가 동시에 사용하면 안되는 영역을 정의한 구역

경쟁조건(Race Condition)

공유자원을 서로 사용하기 위해 경쟁하는 것

상호 배제(Mutual Exclusion)

임계구역 문제를 해결하기 위해 필요한 매커니즘

상호 배제의 요구 사항

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

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

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

3. 세마포어

상호배제의 매커니즘 중 하나이다.

세마포어 사용의 단점

4. 모니터


[ Section 5. 데드락 ]

1. 데드락이란? (feat. 식사하는 철학자)

교착상태(데드락)

여러 프로세스가 서로 작업이 끝나기를 기다리다 아무도 작업을 진행하지 못하는 상태

교착상태가 발생하는 이유는 공유자원 때문이며, 어떤 자원을 여러개의 프로세스가 공유하지 않는 경우 교착상태는 발생하지 않는다.

교착상태의 필요조건

1. 상호배제

어떤 프로세스가 한 리소스를 점유 했다면, 해당 리소스는 다른 프로세스에게 공유가 되면 안된다.

2) 비선점

프로세스 A가 리소스를 점유하고 있을 때, 다른 프로세스는 해당 리소스를 빼앗을 수 없다.

3) 점유와 대기

어떤 프로세스에서 리소스 A를 가지고 있는 상태에서 리소스 B를 원하는 상태여야 한다.

4) 원형 대기

점유와 대기를 하는 프로세스들의 관계가 원형을 이루고 있어야 한다.

2. 데드락 해결 (feat. 은행원 알고리즘)

교착상태 해결방법

교착상태 회피(Deadlock avoidance)

은행원 알고리즘(Banker’s algorithm)

은행의 여윳돈과 사업가들에게 빌려준 돈들을 보고 대출 가능한 상황(안전상태)인지 확인하고 빌려준다.

운영체제에서 은행원 알고리즘 구현

  1. 운영체제는 자기가 가지고 있는 시스템의 총 자원을 파악한다.

  2. 프로세스는 자기가 필요한 자원의 최대 숫자(최대 요구 자원)를 운영체제에게 알려준다.

안정 상태

불안정 상태

순환구조가 발생한 그래프 → 교착상태 발생

교착상태 검출 방법

(1) 가벼운 교착 상태 검출

(2) 무거운 교착 상태 검출


[ Section 6. 쉬어가기 ]

1. 컴파일과 프로세스

작성한 프로그램 코드가 프로세스가 되고 메모리에 할당되는 전반적인 과정

프로그래밍 언어

프로세스의 구조

컴파일 언어로 작성된 파일이 프로세스가 되는 과정

  1. 코드 작성

  2. 컴파일러로 작성한 코드를 컴파일

  3. 컴파일 과정을 거쳐 실행 파일이 생성된다.

  4. 사용자가 프로그램을 실행시키면 운영체제가 프로세스를 만든다.

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

  6. PCB를 만들어 관리가 가능하도록 하고, 프로그램 카운터(실행할 명령어의 주소)를 생성한 프로세스의 코드 영역의 첫번째 주소로 설정한다.

  7. 운영체제 CPU 스케줄링에 따라 프로세스가 실행되다 작업을 마친다.

     


    [ Section 7. 메모리 ]

    1. 메모리 종류

    컴퓨터의 여러 종류 메모리

    레지스터

    • CPU에 존재하며 가장 빠른 기억 장소

    • 컴퓨터의 전원이 꺼지면 데이터가 사라진다. = 휘발성 메모리

    • 32bit CPU, 64bit CPU → 32bit, 64bit는 레지스터의 크기를 말한다.

    • CPU는 연산시 메인메모리(RAM) 에 있는 값을 레지스터로 가져와 연산하고 다시 메인메모리(RAM)에 저장한다.

    • 메인메모리의 값을 레지스터로 옮기려면 오래 걸리기 때문에 필요할 것 같은 데이터를 미리 캐시에 저장한다.

    메인메모리

    • 운영체제와 프로세스가 올라가는 공간

    • 전원이 공급되지 않으면 데이터가 지워진다. = 휘발성 메모리

    • 하드디스크나 SSD보다 속도는 빠르지만 가격이 비쌈 → 데이터 저장 X, 실행중인 프로그램만 올린다.

    보조저장장치(SSD, 하드디스크)

    가격이 저렴하고 전원이 공급되지 않아도 데이터가 지워지지 않는 비 휘발성 메모리

    2. 메모리와 주소

    운영체제는 메모리(메인 메모리, RAM) 관리를 위해 1바이트(8bit) 크기로 구역을 나누고 숫자를 매긴다. 이 숫자를 ‘주소’ 라고 부른다.

    32bit CPU 와 64bit CPU

    64bit CPU가 32bit CPU 보다 한번에 처리할 수 있는 양이 많기 때문에 속도가 더 빠르다.

    • 32bit CPU

      • 레지스터 크기: 32bit

      • ALU(산술논리연산장치) : 32bit

      • (데이터가 이동하는) 버스 : 32bit

      • CPU가 다룰 수 있는 메모리 : 2³² = 4GB

    • 64bit CPU

      • 레지스터 크기: 64bit

      • ALU(산술논리연산장치) : 64bit

      • (데이터가 이동하는) 버스 : 64bit

      • CPU가 다룰 수 있는 메모리 : 2⁶⁴

물리주소와 논리 주소

물리 주소 공간

컴퓨터를 연결하면 0x0번지부터 시작하는 주소 공간

논리 주소 공간

사용자 관점에서 바라본 메모리 공간

사용자는 논리주소로 물리주소에 접근 가능

경계 레지스터

절대 주소와 상대 주소

절대 주소

실제 프로그램이 올라간 메모리 주소이며 메모리 관점에서의 절대 주소

‘물리 주소 공간’ 이라 부른다.

상대 주소

사용자가 바라본 주소이며 실제 메모리 주소가 아니다.

‘논리 주소 공간’이라 부른다.

재배치 레지스터

3. 메모리 할당방식

메모리 오버레이(memory overlay)

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

프로세스의 크기에 따라 메모리를 나누는 방식

한 프로세스가 메모리의 연속된 공간에 할당되기 때문에 “연속 메모리 할당”이라고 한다.

가변 분할 방식의 장/단점

장점

단점

고정 분할 방식 (페이징)

프로세스 크기와 상관없이 메모리를 정해진 크기로 나누는 방식

한 프로세스가 메모리에 분산되어 할당되기 때문에 “비연속 메모리 할당” 이라고 한다.

고정 분할 방식의 장/단점

장점

단점

외부 단편화 문제

메모리를 할당 할 수 있는 공간이 충분함에도 연속된 공간에 프로세스를 할당할 수 없으면 할당하지 못하는 것

내부 단편화 문제

프로세스의 크기가 분할된 공간의 크기보다 작기 때문에 내부에 빈 공간이 생겨 낭비된다.

분할되는 크기를 조절해서 내부 단편화를 최소화 한다.

버디 시스템

가변 분할 방식과 고정 분할 방식을 혼합해 단점을 최소화 함

2의승수로 메모리 분할하여 메모리를 할당하는 방식

버디 시스템의 장점

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

답변 0