티스토리 뷰

개념/운영체제

운체 시험공부

상어악어 2022. 4. 14. 22:37
반응형

프로세스와 쓰레드의 차이점을 설명하고, user-level thread와 kernel-level thread를 비교하여 설명하시오.

프로세스란 실행중인 프로그램을 말하며,

쓰레드는 프로세스 내에서 실행되는 흐름의 단위를 말한다.

프로세스는 running,blocked,ready,terminated,new 등의 생명주기를 가지고 있고,

프로세스의 정보를 저장하기위한 pcb라는 별도의 자료구조가 존재한다

쓰레드도 마찬가지로 born, running, blocked, ready, terminated등의 상태가 존재한다

요즘은 멀티 프로세스, 멀티쓰레드가 지원되어 프로세스, 쓰레드 둘다 스케줄링 기법이 사용된다

 

쓰레드에는 사용자 수준 쓰레드와 커널 수준 쓰레드가 있는데,

사용자 수준 쓰레드는 사용자 수준에서 쓰레드가 구현되고,

실행시간 시스템이 쓰레드를 관리한다.

또한, 쓰레드 관련 연산은 사용자 수준에서만 사용 가능하며,

쓰레드 스케줄링이 라이브러리로 제공된다.

커널은 사용자 수준 쓰레드의 존재를 알지 못하며, N:1관계이다

 

반면에 커널 수준 쓰레드는

각 사용자 수준 쓰레드별로 별도 커널 실행문맥을 생성하며,

커널자원을 관리한다.

또한 멀티프로세서의 성능을 활용이 가능하고, 1:1관계이다

 

 

 

 

 

 

인터럽트, 트랩, 예외상황을 비교하여 설명하시오

인터럽트, 트랩, 예외상황은 모두 사용자 모드에서 커널 모드로 전환되는 상황이다.

다만, 조금씩 차이가 있다.

인터럽트는 하드웨어적으로 발생되는 상황으로 타이머, 키보드, 마우스 등의 외부 주변 장치에의해 발생한다.

트랩은 소프트웨어적으로 발생되는 상황으로 사용자가 명령어를 호출하여 발생한다.

예를 들면 system call이 있다

마지막으로 예외상황은 프로그램 실행중에 비정상적인 상황을 만났을때 발생하는데,

그 예로 overflow, page fault, 0으로 나누기 등이 있다

 

 

 

 

 

 

가상기계(virtual machine)이 무엇이고, 이를 사용하는 이유에 대해 설명하시오

가상기계란 임의의 운영체제에서 존재하지 않는 특정 하드웨어가 존재하는 것처럼 사용하는 것,

특정 소프트웨어 환경을 제공하는것을 말한다

예를 들어 JVM(Java Virtual Machine)이 있는데 이것을 사용하면

어떤 운영체제에서도 Java를 실행 할 수 있는 환경이 조성된다.

따라서  이식성(portability)이 증가하기때문에 가상기계를 사용한다.

 

 

 

 

 

 

 

 

 

세마포어가 무엇이고, 어떤 연산을 제공하는지 구체적으로 설명하시오

세마포어란 상호배제를 지원하기 위해 두 개의 원자적 함수를 조작하는 정수 변수를 말한다.

세마포어는 두 개의 연산을 제공한다.

P(wait) 연산, V(signal)연산이다.

p연산은 임계구역 진입 전 수행되는 코드로

세마포어의 값이 0이될때까지 1씩 뺴준다

v연산은 임계구역 후 수행되는 코드로

세마포어의 값을 1 증가시켜준다

 

p(s)

{

while(s==0) do wait

s-=1;

end
}

 

v(s)

{

s+=1;

end

}

 

 

 

 

교착상태 발생의 4가지 필수조건을 설명하고, 교착상태 방지를 위해 어떤 방법을 사용할 수 있을지 설명하시오.

필수조건

1. 상호배제

하나의 자원은 하나의 프로세스만 사용이 가능한 상태

 

2. 점유와 대기

프로세스가 자원을 점유한 상태에서 다른 자원을 요구하는 상태

 

3. 비선점

프로세스에게 할당된 자원은 자발적으로 반납, 프로세스가 종료되기전까지 다른 프로세스가 뻇을 수 없다

 

4. 환형대기

프로세스와 자원이 원형을 이루며, 프로세스가 자원을 점유한 상태에서 추가적인 자원요청

 

 

 

방법

1. 예방

교착상태가 발생하기 전에 사전 가능성을 제거하는 것

예를 들어 필수조건 상호배제를 제외한 3가지 중 1가지를 제거하는 것

점유와 대기

->한꺼번에 자원 요청

비선점

->추가 자원요구 거절 전부 반납

환형대기

->각 자원의 유형별로 할당 순서 부여

 

 

 

2. 회피

교착상태가 발생할 것 같으면 적절히 피해가는 것

3. 탐지

자원 할당 그래프를 이용해서 교착상태가 발생할지 미리 판단하는거

4. 회복

suspend/resume, checkpoint/rollback등을 이용해

교착상태에 빠진 상태에서 자원을 모두 반납하고 다시 시작해

교착상태를 해결하는 방법

반응형

'개념 > 운영체제' 카테고리의 다른 글

운체 시험공부3  (0) 2022.04.18
운체 시험공부2  (0) 2022.04.15
교착상태와 무기한 연기-2  (0) 2022.04.08
교착상태와 무기한 연기  (0) 2022.04.05
비동기 병행 실행3  (0) 2022.04.01
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함