-
기본 개념운영체제/CPU 스케줄링 2018. 2. 3. 17:51
다중 프로그래밍의 목적은 CPU 이용률을 최대화하기 위해 항상 실행중인 프로세스를 가지게 하는 데 있다.어떤 프로세스가 대기하고 있을 경우 운영체제는 CPU를 그 프로세스로부터 회수해 다른 프로세스에게 할당한다.CPU는 시스템에서 중요한 자원이기 때문에 CPU의 스케줄링은 운영체제 설계의 핵심이 된다. CPU 입출력 버스트 사이클프로세스 실행시 CPU버스트와 입출력 버스트가 번갈아가며 발생한다. CPU스케줄러CPU에 프로세스가 없을 때마다 운영체제는 준비 완료 큐에 있는 프로세스들 중에서 하나를 선택하여 실행한다.선택 절차는 단기 스케줄러에 의해 수행된다. 선점 스케줄링CPU 스케줄링 결정은 다음의 네 가지 상황 하에서 발생한다.1. 한 프로세스가 실행 상태에서 대기 상태로 전환될 때2. 프로세스가 실행..
-
스레드와 관련된 문제들운영체제/스레드 2018. 2. 3. 17:44
fork() exec() 시스템 호출 다중 스레드 프로그램에서는 fork() 와 exec()의 의미가 달라질 수 있다. 만일 한 프로그램의 스레드가 fork()를 호출하면 새로운 프로세스는 모든 스레드를 복제해야 할지 호출한 스레드만 복제할지 모호해진다. 신호 처리 신호는 UNIX에서 프로세스에게 어떤 사건이 일어났음을 알려주기 위해 사용된다. 다중 스레드 프로그램에서는 어느 스레드에게 신호를 전달해야 할 지 선택해야한다. 취소 스레드가 끝나기 전에 그것을 강제 종료 시키는 작업을 일컫는다. 다중 스레드 시스템에서는 스레드 취소시 자원이 동기화 되었는지 확인해야 한다. 스레드 국지 저장소 각 스레드가 자기만 액세스 할 수 있는 데이터를 말한다. 스케줄러 액티베이션 많은 시스템들은 사용자와 커널 스레드 사..
-
암묵적 스레딩운영체제/스레드 2018. 2. 3. 17:41
스레드의 수가 늘어남에 따라 명시적으로 프로그램을 작성하고 검증하는 것이 어려워졌다.이러한 어려움들을 극복하기 위해 스레드의 생성과 관리 책임을 컴파일과 실행 시간 라이브러리에게 넘겨준다.이를 암묵적 스레딩 이라고 한다. 스레드 풀프로세스를 시작할 때 일정한 수의 스레드들을 미리 풀로 만들어 둔다.요청이 들어올 경우 풀에서 한 스레드 에게 작업을 할당한다.요청을 다 서비스 해 주었으면 그 스레드는 다시 풀로 돌아가 다음 작업을 기다린다.풀에 남아있는 스레드가 바닥날 경우 서버는 사용 가능한 스레드가 하나 생길 때까지 기다린다.