본문 바로가기
09.학교시험

3학년 1학기 운영체제 중간

by chojju 2021. 12. 5.
반응형

메모리 계층 구조

메모리를 계층적으로 구성à 비용, 속도, 용량, 접근시간등을 상호 보완

 

캐시(왜 쓰는지)

처리 속도 빠른 프로세서와 상대적으로 느린 메인 메모리의 속도 차이를 보완하는 고속 버퍼

데이터가 이동하는 통로(대역폭)를 확대하여 프로세서와 메모리의 속도 차이를 줄임

명령어 실행(레지스터 동작 어떻게 하는지, 뭐부터 수행하는지 예제 주고 표가 중요)

 

인출 사이클

 

간접 사이클

 

인터럽트 사이클

 

버퍼링과 스풀링 차이

버퍼링: 유휴시간 없도록 입출력 장치 별로 버퍼를 두어, 프로세서에서 연산 할 때 동시에 다른 작업 입출력하는 간단한 방법

스풀링: 디스크를 버퍼처럼 사용하여 입출력장치에서 미리 읽는 것, 입출력 작업 중복 처리 가능, 프로세서와 입출력 장치가 고효율로 작업, 성능에 직접적 도움

차이: 버퍼링은 주기억 장치를 이용, 1개의 작업에 대해 CPU 작업과 I/O 작업으로 분할

스풀링은 보조기억 장치를 이용, 여러 개의 작업에 대해 CPU작업과 I/O 작업으로 분할

부팅 or 부트스트래핑(그림 설명)

운영체제를 메인 메모리에 적재하는 과정

 

어느시간에 프로그램 멈췄을 때 변수가 어디로 들어가는지, 사라지는 순서, 어떻게.

전역변수는 데이터에 들어감 stack 함수 들어감 heap 동적할당

 

어떨 때 대기, 준비, 실행으로 바뀌는지

 

 

스레드(thread)의 개념

프로세스의 특성인 자원과 제어에서 제어만 분리한 실행 단위

프로세스 하나는 스레드 한 개 이상으로 나눌 수 있음

같은 프로세스의 스레드들은 동일한 주소 공간 공유

 

무엇을 공유하고 따로따로 쓰는지

 

스레드의 장점

프로세스 생성하면 해당 프로세스의 스레드도 함께 생성

적은 오버헤드

스레드 한 개가 대기 상태로 변환 시 전체 프로세스 대기 상태로 변환되지 않음

프로세스 하나에 있는 전체 스레드는 프로세스의 모든 주소에 접근 가능

상호배제(mutual exclusion)의 개념

병행 프로세스에서 프로세스 하나가 공유 자원 사용 시 다른 프로세스들이 동일한 일을 할 수 없도록 하는 방법

동기화: 변수나 파일은 프로세스 별로 하나씩 차례로 읽거나 쓰도록 해야 하는데, 공유 자원을 동시에 사용하지 못하게 실행을 제어하는 방법 뜻 함.

임계 영역의 개념

다수의 프로세스 접근 가능하지만, 어느 한 순간에는 프로세스 하나만 사용 가능한 영역

Semaphore 개념과 동작

상호배제 및 다양한 연산의 순서도 제공

Semaphore

True false, PV연산과 관련

P는 검사(proberen, V증가(verhogen)의미

음이 아닌 정수 플래그 변수

Semaphore를 의미하는 S

표준 단위 연산 PV로만 접근하는 정부 변수

P: 프로세스 대기하게 하는 wait 동작, 임계영역에 진입하는 연산

V: 대기 중인 프로세스 깨우려고 신호 보내는 signal 동작, 임계영역에서 나오는 연산

Semaphore 장단점

장점: 크리티컬 섹션에서 충돌이 나지 않는다.

단점: 많은 스레드들을 block 당한다. CPU가 가만히 waiting하는 시간 낭비가 생길 수 있다. (기아상태)

Semaphore 기존거랑 나은 것 à 음이아닌 정수값을 갖는 플래그 값으로 프로세스의 진행 가능 여부 결정

Semaphore 해결 못하는게 뭔지[교착상태]

P연산 또는 V연산이 생략되면 상호배제 문제와 P연산 때문에 대기하고 있는 프로세스들이 교착상태에 빠질 수 있다. P연산이 시작되면 프로세스는 다른 경로 선택 X … 프로세스는 한 번에 한 세마포어만 대기할 수 있으므로 자원을 할당하는 상황에서 교착상태를 가져올 수도있다.

Semaphorewait signal 연산(과정 이해)

 

기아상태: 프로세스가 필요한 자원들을 영원히 할당 받지 못해서 계속 기다리고 있는 상태

교착 상태(deadlock)의 개념

다중 프로그래밍 시스템에서 프로세스가 결코 일어나지 않을 사건(event)을 기다리는 상태

교착 상태 발생 해결책

철학자 4명만 테이블에 동시에 앉도록 함

철학자가 양쪽 포크 모두 사용할 수 있을 때 포크를 집을 수 있도록 허용(이것은 임계 영역 안에서 수행)

비대칭 해결법 사용

홀수 번째 철학자는 왼쪽 포크 집은 후 오른쪽 포크 집게 하고, 짝수 번째 철학자는 오른쪽 포크 집은 후 왼쪽 포크 집게 함

교착 상태 발생의 네 가지 조건

상호배제: 한 번에 한 프로세스만 해당 자원을 사용 할 수 있어야 한다

점유와 대기: 최소한 자원 하나 보유하고 다른 프로세스에 할당된 자원을 얻기 위해 기다리는 프로세스가 있어야 함

비선점: 자원은 선점 될 수 없다.

순환(환형) 대기: 자원을 각각 얻기 위해 기다리는 경우

 

교착 상태 해결 방법

예방(prevention):

상호배제 조건 방지: 상호 배제 조건 제거

점유와 대기 조건 방지: 한 프로세스에 수행 되기 전에 모든 자원을 할당시키고 나서 점유하지 않을 때 다른 프로세스가 자원을 요구하도록 하는 방법

비선점 조건 방지: 프로세스가 기다려야 한다면 프로세스는 현재 가진 자원 모두 해제, 프로세스가 작업 시작하려면 요청한 새로운 자원과 해제한 자원 확보 해야한다.

환형 대기 조건 방지: 자원 유형에 따라 순서 매김

회피(avoidance):

프로세스 시작 거부

자원 할당 거부

탐지(detection):

탐지 알고리즘 호출(교착 상태 발생 빈도수, 교착 상태 발생 시 영향 받는 프로세스 수)

회복(recovery):

교착 상태 일으킨 프로세스 종료

교착상태의 프로세스에 할당된 자원을 선점하여 프로세스나 자원 회복

반응형

댓글