qingfro9님의 블로그 입니다.

[정보보안기사][운영체제]20180825_용어정리 본문

정보보안/정보보안기사

[정보보안기사][운영체제]20180825_용어정리

qingfro9 2018. 8. 25. 18:24

DeadLock

한글로는 교착 상태라고 한다. OS나 SW에서 잘못된 자원 관리로 둘 이상의 프로세스가 함께 멈추는 현상을 말한다. 
쉬운 예로는 식사하는 철학자 문제를 들 수 있다 (dining philosopher problem)
Dining philosopher problem
- 1965년 에츠허르 데이크스트라가 만든 문제
- 5명의 철학자가 원탁에 앉아서 식사를 한다. 철학자들 사이에 포크가 하나씩 높여 있다. 철학자들은 다음과 같은 과정을 통해 식사한다.
    1. 왼쪽 포크 사용 가능해질 때 까지 생각한다. 만약 사용 가능해지면 집어든다.
    2. 오른쪽 포크 사용 가능해질 때까지 생각한다. 만약 가능해지면 집어든다.
    3. 양쪽 포크를 잡으면 정해진 시간만큼 식사한다.
    4. 오른쪽 포크를 내려 놓은다.
    5. 왼쪽 포크를 내려 놓는다.
    6. 다시 1번으로 돌아간다.

- 위와 같은 시스템으로 진행되면 모든 철학자가 1번, 왼족에 있는 포크를 시도하고 2번 상태에 머무르게 되며, 이를 교착(Deadlock)이라한다.

교착 상태가 많이 발생할 수 있는 환경 시스템 파일이나 다른 프로그램이 공유하는 파일을 건드리기 쉬운 프로그램 설치 과정중에 많이 발생하게 된다. (설치시 다른 프로그램은 모두 꺼주세요. 하는 이유)
발생 조건
1.상호 배제(Mutual exclusion) : 자원 자체를 동시에 쓸 수 없는 상태, 예: 연산 결과를 저장할 때 변수에는 동시에 건드리면 위험한 자원일 경우 상호 배제된다.
2.점유 상태로 대기(Hold and wait) : 자원을 붙잡은 상태에서 다른 자원을 기다리고 있는 상태. 예: 여러 개의 자원을 동시에 써야하는 경우에는 순차적 할당 시 사용이 어렵기 때문
3.선점 불가(No preemption) : 다른 프로세스가 자원을 뺏어올 방법이 없는 상태 
4.순환성 대기(Circular wait) : 대기 상태가 꼬리를 물고 있는 상황

좀 더 사제한 이해를 위해서는 멀티스레딩에 대한 이해가 필요하다. 또한 많이 알려진 멀티테스팅에 대한 이해도 함께 있다면 쉽게 이해할 수 있다.

멀티스레딩

멀티스레딩은 함수 두 개 이상의 흐름을 운영체제가 적절하게 연결해 가면서 운영하는 방식을 의미한다.(컴퓨터는 여러개의 스레드를 효과적으로 운영하는 것)

멀티테스킹

한번에 2가지 이상의 일을 동시에 처리하는 작업으로 “다중과업화”라고도 부른다.

PCB

프로세스 제어블록(Process Control Block)의 약자로 CPU에 의해 실행 중인 특정한 프로세스를 관리할 필요가 있는 정보를 포함하는 운영체제 커널의 자료 구조다.  

곧, 프로세스가 생성될 때 마다 고유의 PCB가 생성되고 프로세스가 완료되면 PCB는 제거된다.  PCB는 생성되면 커널 스택의 처음에 위치하게 되며, PCB 구조체의 형태는 아래와 같다.

Process ID
프로세스 식별자
Process State
프로세스 상태
  • 생성(Create)
  • 준비(ready)
  • 실행(running)
  • 대기(waiting)
  • 완료(terminated)
Program Counter
프로그램 계수기
프로세스가 다음에 실행할 명령어의 주소를 가리킨다.
Register information
CPU 레지스터 및 일반 레지스터
Scheduling information
CPU 스케줄링 정보
우선 순위, 최종 실행 시각, CPU 점유 시간 등
Memory related information
메모리 관리 정보
해당 프로세스의 주소 공간 등
Accounting information
프로세스 계정 정보
페이지 테이블, 스케줄링 큐 포인터, 소유자, 부모 등
Status information related to I/O
입출력 상태 정보
프로세스에 할당된 입출력장치 목록, 열린 파일 목록 등




Comments