OS(7)
-
교착 상태 (추후 추가 필요)
교착 상태 컴퓨터에는 한정적인 자원이 있고 프로세스가 이를 서로 경쟁할 수 있다. 한프로세스가 자원을 요청했을 때 사용하지 못하는 상황이 발생할 수 있다. 이처럼 계속해서 대기중이며 다시는 실행될 수 없는 프로세스의 상태를 교착상태라고 한다. 시스템은 경쟁하는 프로세들 사이에 분배되어야 할 유한한 수의 자원들로 구성된다. 자원 타입들은 CPU 주기, 파일, 입출력 장치 등이 있다. 이러한 자원들은 프로세스는 아래와 같은 순서로 진행한다. 요청 -> 사용 -> 방출 요청: 프로세스는 자원을 요청한다. 사용: 프로세스는 자원에 대해 작업을 수행할 수 있다. 방출: 프로세스가 자원을 방출한다. 이러한 예로는 장치의 request()와 release(), 파일 open(), close()와 메모리 allocat..
2020.09.13 -
프로세스 동기화
동기화라는 것은 같은 시간에 메모리를 read와 write가 동시에 발생하면 데이터가 일치하지 않게 될것이다. 동시에 여러 개의 프로세스가 동일한 자료를 접근해 조작하고, 그 실행 결과가 접근이 발생한 특정 순서에 의존하는 상황을 경쟁상황이라고 한다. 이렇듯 자원에 다수의 프로세스가 접근해서 사용한 후에도 데이터가 올바르게 유지하는 것을 프로세스 동기화라고한다. 임계구역 문제 각 프로세스는 일반적으로 아래와 같은 구조를 이룬다. 각 프로세스는 임계구역이라고 부르는 코드부분을 갖고 있고 이 안에서 공유 변수를 바꾸거나 테이블을 갱신하거나 파일을 쓰거나 하는 등의 작업을 수행한다. 여기서 중요한 점은 한 프로세스가 임계구역을 사용하고 있다면 다른 프로세스는 접근하지 못한다. 각 프로세스는 임계구역에 들어가기..
2020.09.11 -
CPU 스케줄링
다중 프로그래밍 다중프로그래밍의 목적은 CPU 이용률을 최대화하기 위해 항상 실행 중인 프로세스를 가지게 하는 데 있다. 한 프로세스가 입출력하고 있을 때 다른 포르세스가 대기하고 있다면 CPU입장에서는 엄청난 낭비가 발생하는 것이다. 그래서 어떤 프로세스가 대기하고 있을 때 CPU에 다른 프로세스를 할당해주어서 CPU가 항상 실행중인 프로세스를 갖게 해주는 것이다. CPU 스케줄러 CPU가 유휴 상태가 될 때마다, 운영체제는 준비 완료 큐에 있는 프로세스들 중에서 하나를 선택해 running 상태로 만드는 것이다. 즉 여기서 CPU가 선택되는 방법에 대해서 배울 것입니다. 스케줄링 CPU 스케줄링 결정 과정 1. 한 프로세스가 running 상태에서 waiting 상태가 될 때 2. 프로세스가 runn..
2020.09.09 -
스레드
스레드는 CPU 이용의 기본 단위이다. 스레드는 스레드 ID, 프로그램 카운터, 레지스터 집합, 그리고 스택으로 구성된다. 스레드는 같은 프로세스에 속한 다른 스레드와 자원을 공유한다. 다중 스레드의 경우 코드, 데이터, 파일들을 공유한다. 프로세스가 다중 스레드를 가지고 있다면 프로세스는 동시에 하나 이상의 작업을 수행할 수 있다. 웹서버는 일반적으로 다수의 클라이언트로 부터 접속을 받는다. 하지만 싱글스레드이면 클라이언트를 순서대로 처리하게 되면 속도에 문제가 발생할 것이다. 그래서 서버는 클라이언트에서 요청이 올때마다 새로운 스레드를 생성해 작업을 처리해준다. 스레드 장점 1. 응답성 하나의 응용프로그램이 길게 실행되고 있는걸 하나의 스레드로 실행시키고 다른 스레드를 활용해서 해당 응용프로그램을 계..
2020.09.07 -
컴퓨터 OS 프로세스
프로세스의 개념 프로세스란 실행중인 프로그램을 의미한다. 프로그램 그 자체는 프로세스가 될 수 없다. 프로그램은 명령어 리스트틀 내용으로 디스크에 저장되어있는 수동적인 존재이다. 이와 대조적으로 프로세스는 다음에 실행할 명령어를 지정하는 프로그램 카운터와 레지스터, 포르세스 상태 등이 함께 존재하는 집합을 가진 능동적인 존재이다. 프로세스 상태 새로운(new): 프로세스가 생성 중이다. 실행(running): 명령어들이 실행되고 있다. 대기(waiting): 프로세스가 어떤 사건(입출력 완료 또는 신호의 수신 같은)이 일어나기를 기다린다. (I/O 또는 event 같은 것 때문에 기다리고 있다) 준비 완료(ready): 프로세스가 처리기에 할당되기를 기다린다. 종료(terminated): 프로세스의 실행..
2020.09.05 -
Thread Context Switching vs Process Context Switching
이전 글에서 thread와 Process의 차이에 대해 공부했습니다. 이전 글에서 Thread Context Switching과 Process Context Switching는 속도에서 차이가 난다고 말씀 드렸습니다. 근데 왜 속도에서 차이가 날까 궁금해서 찾아본 결과를 정리하려고 합니다. [OS] - Thread, process Thread, process https://www.geeksforgeeks.org/difference-between-process-and-thread/ Difference between Process and Thread - GeeksforGeeks A Computer Science portal for geeks. It contains well written, well thoug..
2020.05.05