목록Dot-Gabi/Operating System (13)
학사 나부랭이
Process 프로그램은 파일 시스템에 존재하는 실행 파일이고 프로세스는 컴퓨터 상에 수행 중인 프로그램이에요. 실행을 위해 커널에 등록되어있고 CPU 레지스터, Program Counter 값 등의 커널에 등록된 것들을 모두 합친, 즉 프로그램 코드와 그 코드에 연계된 데이터의 집합이에요. 프로세스는 아래와 같은 구성요소를 가져요. PID(프로세스 식별 번호) 프로세스의 유일한 식별자이며 정수 번호예요. 상태 준비, 실행, 대기, 보류 등의 상태를 나타내요. 우선순위 스케줄링을 할 때 사용되는 다른 프로세스들과의 상대적인 우선순위 수준을 나타내요. Program Counter(프로그램 계수 計数) 프로그램에서 다음에 수행될 명령어의 주소 값을 가지고 있어요. 메모리 포인터 프로그램과 데이터가 저장되어있..
운영체제가 수행하는 핵심 작업 중 하나는 이용 가능한 자원을 관리하고 다양한 프로세스의 자원 요구를 스케줄링하는 것이에요. 이 자원 할당 및 스케줄링 정책은 다음의 세 가지 사항을 고려해야 하죠. Differential responsiveness(반응 시간 차등화) 다른 서비스 조건을 지닌 작업을 구별해야 해요. 그러면서도 운영체제는 모든 요구 조건을 포괄적으로 만족할 수 있도록 할당 및 스케줄링을 해야 하죠. 또 이런 결정을 동적으로 내려야 하죠. 만약 프로세스에게 입출력 장치를 할당했을 때 다른 프로세스가 이 장치를 요구할 것에 대비해 최대한 빨리 수행시켜야 하죠. Faimess(공정성) 특정 자원을 사용하고자 하는 모든 프로세스, 특히 비슷한 요구를 할 경우 그 자원에 동등하고 공정하게 접근할 수 ..
Deadlock(교착 상태)란 프로세스들이 더 이상 진행하지 못하고 영구적으로 블록 된 상태예요. 여러 프로세스들이 각자 가지고 있던 자원을 반납하지 않고 상대방의 자원을 요구할 때 발생하는데 이러면 응답 없음이 뜨고 해당 프로세스가 보유한 자원이 이 상태에서 벗어나기 전까지는 활용되지 못해요. Process P ... Get A ... Get B ... Release A ... Release B ... Process Q ... Get B ... Get A ... Release B ... Release A ... 3: 프로세스 Q가 자원 B를 획득하고 프로세스 P가 자원 A를 획득하고자 하는데 이 때, Q는 자원 A를 획득하려다 블록되고 P는 자원 B를 획득하려다 블록되어요. 서로 블록되어 기다리고 있기..
동기화 공유되고 있는 변수를 사용해 한 프로세스가 작업을 하고 있을 때, 다른 프로세스가 사용하는 것을 막아주는 상호 배제의 한 방법이에요. 여기서 동시에 여러 프로세스가 한 자원에 접근해 조작할 때, 접근 순서에 따라 값이 변하는 상황이 Race condition이에요. 임계영역 Race condition이 일어날 수 있는 코드/부분/영역이에요. 여기에는 다음의 조건이 필요한데 먼저, 임계 영역을 가지고 있는 프로세스가 여러 개 있을 때, 반드시 하나의 프로세스만 임계 영역에 들어갈 수 있어야 해요. 그리고 임계 영역이 아닌 곳에서 멈춘 프로세스는 다른 프로세스에게 영향을 줘선 안 되죠. 임계 영역에 접근하려는 프로세스는 교착 상태나 기아가 일어나지 않아야 하고 임계영역에 들어간 프로세스가 없을 때, ..
프로세스 병행성은 병렬성과 헷갈릴 수 있는데 이 참에 차이를 확실히 두죠. 병렬성 Multi-Processing(다중 처리 시스템)인데 여러 프로세스가 각각 다른 CPU에서 수행을 할 수 있는 거예요. 아래를 보면 스펀지밥의 손이 여러 개고 각각 프로세스 하나씩 맡고 있죠? 병행성 CPU가 한 번에 하나의 프로세스만 실행하는데 대신 시간을 나눠서 여러 프로세스를 빠르게 전환해가며 실행해요. 그래서 마치 여러 프로세스를 한 번에 하는 것처럼 보이죠. 여기서는 스펀지밥의 오른손은 하나지만 소스도 뿌리고 뒤집개도 집는 프로세스를 빠르게 전환해서 마치 소스를 뿌리는 일과 뒤집개를 집고 있는 일이 동시에 일어나는 것처럼 보이죠? 병행성의 경우 프로세스 간 context switching(문맥 교환)도 일어나는데 ..