'Programing/OS'에 해당되는 글 4건

  1. 2015.03.31 스케쥴러
  2. 2015.03.31 Process의 실행 관련
  3. 2015.03.31 프로세스의 개념
  4. 2015.03.31 Thread 생성 방법

2015.03.31 18:47 Programing/OS

스케쥴러

스케쥴러

.프로세스 스케쥴러는 이용 가능한 프로세스를 실행 시키기 위해서 선택한다

->프로세스가 가장 효율적이고 CPU를 몽땅 사용할 수 있도록 CPU를 선택

.스케쥴링 큐는 대체적으로 링크드 리스트를 사용한다

.long term scheduler는 해당 알고리즘에 따라서 메모리에 올릴지 결정한다

->cpu의 상태로는 new에서 ready로 가는 것을 승인한다

.short term scheduler는 닥치고 메모리에 바로바로 올려서 실행시키는거

->cpu의 상태로는 ready에서 running으로 가는 상태로 전이

.long term schedouler는 자주 쓰이지 않는다.

.context switch는 cpu를 프로세스의 현재 상태를 저장 시키고 다른 프로세스를 복구시켜서 바꾸는거임

.context switch의 속도는 하드웨어 지원에 높은 의지를 한다.

.프로세스가 새로운 프로세스를 생성시킨다면 이는 tree같이 생겼다

.프로세스가 새로운 프로세스를 만들 때 가능한 상황들

-> 부모는 자식과 함께 계속해서 실행한다.

-> 자식들이 종료될 때 까지 부모는 계속해서 기다린다.

.프로세스의 주소 공간에서 일어날 수 있는 일들

-> 자식 프로세스는 부모프로세스의 복제

-> 자식 프로세스는 새로운 프로그램을 복제한 공간(메모리)에 넣는다

.fork 시스템의 프로세스 상태

-> fork가 되면 부모는 wait상태가 되고 자식은 exec()나 등등 일처리를 함

-> 자식 프로세서가 exit가 되면 부모 프로세서에서 기다리고 있다가 resume

.프로세서를 죽일려면  exit() 시스템 콜을 이용한다



'Programing > OS' 카테고리의 다른 글

스케쥴러  (0) 2015.03.31
Process의 실행 관련  (0) 2015.03.31
프로세스의 개념  (0) 2015.03.31
Thread 생성 방법  (0) 2015.03.31
Posted by thread1525

댓글을 달아 주세요

.스레드: 싱글 스레드는 한타임에 하나의 일만 가능, 

현재 프로세스는 멀티플 스래드를 가지는 프로세스를 허가해옴, PCB에선 이제 각 스레드의 정보까지 가지고 있음


.프로세스는 잡큐에 잡을 넣는다(큐에 넣는다고 생각하면 됨)


.프로세스에서 프로세스로 스위치 순서

-> P0이 실행중

->인터럽트 혹은 시스템콜(이때 P0은 IDLE상태)

->PCB0에 상태를 저장

->PCB1로 부터 상태로드(이때 P1은 실행중)

->그러다가 중간에 또 인터럽트 혹은 시스템콜

->PCB1에 상태를 저장(이 때 P1은 IDLE상태)

->PCB0로 부터 상태로드(이때 P0은 실행중)



'Programing > OS' 카테고리의 다른 글

스케쥴러  (0) 2015.03.31
Process의 실행 관련  (0) 2015.03.31
프로세스의 개념  (0) 2015.03.31
Thread 생성 방법  (0) 2015.03.31
Posted by thread1525

댓글을 달아 주세요

.잡과 프로세스는 같은 말이라고 생각하면 된다 job=process

.프로그램 카운터=다음에 실행할 명령어가 저장되어 있는 곳

.프로세스는 또 전역변수와 같은 데이터 섹션 그리고 펑션 파라미터, 리턴 주소, 지역 변수를 포함하는 일시점 데이터를 포함하는 프로세스 스택을 포함한다 -> 프로세스가 결국 프로세스 스택을 가지고 있다는 얘기

.또 프로세스는 프로세스가 실행중일때 동적으로 할당 될 메모리를 포함하는 힙을 가지고있다


.프로세스 상태

new: 프로세스가 생성됨

running: 실행중

waiting: 프로세스가 사건이 발생할 동안 대기중

ready: 프로세스가 프로세서에 임명되기를 기다림

terminated: 프로세스가 실행에서 끝남


.프로세스 컨트롤 블록: 운영체제 안에서 프로세스는 PCB로 인해서 표현되어진다


.프로세스 컨트롤 블록

1. 프로세스상태: 뉴, 러닝, 웨이팅, 레디, 터미네이티드와 같은 상태를 표시함

2. 프로그램 카운터: 프로세스를 위한 다음 실행 지시의 주소를 가리킴

3. CPU 레지스터: CPU레지스터는 컴퓨터 아키텍처에 의해 다양한 수와 종류가 있다. 그것들은 가산기, 인덱스 레지스터, 스택 포인터, 그리고 일반적 목적의 레지스터 그리고 상태 코드 정보를 포함한다. 프로그램 카운터와 같이 상태 표시는 반드시 인터럽트가 발생하면 상태를 저장시킨다.

4. CPU 스케쥴링 정보: 이 정보는 (큐에 스케쥴링하는 정보를 포함한) 프로세스의 우선순위 포인터와 다른 스케쥴링 파라미터가 있다

5. 메모리 관리 정보: 이 정보는  운영체제에서 사용되는 메모리 시스템에 관한 정보가 포함되어 있을거다.

6. ACCOUNTING INFORMAITON: 이 정보는 CPU의 양을 포함한, 실시간 사용량, 타임 리미트, 답의 개수, 프로세스의 개수들을 가지고있다.

7. I/O STATUS INFORMAITON: 이 정보는 프로세스에 할당 되어진 I/O디바이스의 리스트를 포함한다.



'Programing > OS' 카테고리의 다른 글

스케쥴러  (0) 2015.03.31
Process의 실행 관련  (0) 2015.03.31
프로세스의 개념  (0) 2015.03.31
Thread 생성 방법  (0) 2015.03.31
Posted by thread1525

댓글을 달아 주세요

1. UNIX와 LINUX 계열은 pthread를 이용한다.

#include <ptrhread.h> 를 통해 헤더파일울 인클루딩


2. WIN32 Threads

Pthread와 비슷한 라이브러리를 사용해서 생성


3. JAVA Threads

Runnable 인터페이스를 implements 하여 사용한다

public interface Runnable

{

public abstract void run();

}

'Programing > OS' 카테고리의 다른 글

스케쥴러  (0) 2015.03.31
Process의 실행 관련  (0) 2015.03.31
프로세스의 개념  (0) 2015.03.31
Thread 생성 방법  (0) 2015.03.31
Posted by thread1525

댓글을 달아 주세요

이전버튼 1 이전버튼

블로그 이미지
1525번 thread 입니다.
thread1525

공지사항

Yesterday3
Today0
Total6,064

달력

 « |  » 2019.9
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          

최근에 달린 댓글

최근에 받은 트랙백

글 보관함