728x90

프로세스 : 실행중인 프로그램

메인메모리에 자리잡고(로드) 있어야 함

하드디스크에 저장되어있는 건 프로세스 아님, 실행중이지 않기 때문, 그냥 프로그램, 코드

돌고있는 게 프로세스

 

 

메인프레임 : 대형 컴퓨터, 금융, 은행사에서 씀

전산실은 미니 컴퓨터

 

IBM : 컴퓨터 회사 이름

 

교착 상태 : 서로 진행을 못하는 상태

 

응용 : 어플리케이션(앱), 운영체제 시스템이 아닌 프로그램

 

통신 : 정보 교환, input, output, exchange, communication, 둘이 이루고자하는 목적

 

 

 

# 프로세스에 대한 제어 정보(PCB) ***********중요

- structure 타입으로 다 되어있음

- 학적부

- 운영체제가 관리

- 학번은 유일하게 식별

- 상태 : 실행중인지

- 우선순위

- 프로그램 카운터 : 다음에 수행될 명령어의 주소

- 문맥 데이터

- 입출력 상태 정보

- 어카운팅 정보 : 과금 정보

 

* 궤적(트레이스) : 몇번째 줄 수행했는지

 

# 디스패처

- 처리기(cpu)를 한 프로세스로부터 다른 프로세스로 교체하여 줌

- 각 프로세스에다가 cpu를 할당해주는 프로그램

- 운영체제에 가장 핵심적인 프로그램

A, B, C가 메인메모리에 적재(로드)됨

 

 

# test 디렉토리 만들기

 

# fork() 함수

- 새로운 프로세스가 몇 개 돌았냐, fork가 몇 개 있냐

- 새로운 자식 낳음(새로운 프로세스 생성)

- 컴퓨터에서 최초의 프로세스 : 윈도우 운영체제

- 이 프로그램 자체가 parent(test2.c), fork() 3번

- fork() 3번 : 자식 프로세스 7개, printf()문 8번

- fork() 4번 : 자식 프로세스 15개, printf()문 16번

 

 

# exec() 함수

- fork()된 다음에 자식이 실행

- parent프로세스와 child 프로세스가 통신 (IPC)

 

# test3.c

pid=78, glob=7, var=89 // child process

pid=77, glob=6, var=888 // parent process는 변화없음

* 식별자 : 학번, 주민등록번호

0보다 큰 정수값 pid(id값)

fork() 함수 실행하면 리턴값 들어옴, 0보다 적으면 실패

pid 값이 0이면 child process

pid 값이 0보다 크면 parent process

하나가 복사돼서 만들어짐

sleep(2) : 2초동안 기다림, child 먼저 찍도록 기다림

 

 

# test4.c

child process는 메시지 5번 출력, parent process는 3번 출력

0면 child process, n=5

default, 0보다 큰 경우, parent process, n=3

parent n은 3, 2, 1

child n은 5,4,3,2,1

 

반응형

'전공 공부 > 운영체제' 카테고리의 다른 글

운영체제 9주차 강의  (0) 2021.04.27
운영체제 7주차 강의  (0) 2021.04.13
운영체제 4주차 강의  (0) 2021.04.03
운영체제 3주차 강의  (0) 2021.03.16
운영체제 2주차 강의  (0) 2021.03.09
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기