ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Chapter-3] 프로세스 관리
    개발공부/OS 2024. 7. 21. 02:27

    -이대 반효경 교수님 강의 기반으로 작성되었습니다-

     

    프로세스의 생성

    부모 ==> 자식

    (트리구조)

     

    프로세스는 자원이 필요

        1. 운영체제로 부터 얻어오기

        2. 부모에게 얻어오기 (종류 : 전체, 일부, 아예 공유 x)

            ==> 내용이 같은데 공유를 하지 않는다면 낭비다

    ++Copy on write ==> (cow)

        write가 발생 했을때 그때 카피뜨겠다.

     

    관련된 시스템 콜

    - fork()

    부모프로그램 복사

    pc도 따라가기 때문에 무한 복제는 방지됩니다.

    Q. 부모와 자식 분간은 어떻게?

    A. pid로 (부모>0, 자식 = 0)

     

    - exec()

    새로운 프로그램 올리기

    == execlp(실행파일, 명령어, 파라미터...,NULL) 

        경로는 환경변수 PATH에 정의된 경로에서 찾는다네요

        ex) execlp(ls,ls,-al,NULL) 은 터미널에서 'ls -al' 명령 실행과 같다

     

    - wait()

    해당 프로세스를 block상태로 재워버리기
    보통 자식 ps를 만들고 wait()
    자식 ps가 끝난 후 ready상태로 변환

     

    - exit()
    프로그램 종료콜
    1. 자발적 종료
        컴파일러가 프로그램 끝날때 자동으로 호출
        명시적으로도 가능

    2. 비자발적 종료

        키보드로 kill, break 입력
        부모프로세스가 자식프로세스 강제종료
        부모가 종료

     

    프로세스 간 협력

    독립적 프로세스(independent)

    =  하나의 프로세스는 다른 프로세스의 수행에 영향 x

     

    협력 프로세스

    = 다른 프로세스의 수행에 영향을 미칠 수 있음

       프로세스 간 협력 메커니즘(ipc) = message passing : 커널을 통해 메시지 전달, shared memory 

     

    message passing?

    direct communication : 통신하려는 프로세스 이름 명시

    indirect communication : mailbox 혹은 포트를 통해 메시지 전달

     

    shared memory?

    커널이 한번 주면 프로세스 끼리 관리

    '개발공부 > OS' 카테고리의 다른 글

    [Chapter-5] Process Synchronization  (0) 2024.08.04
    [Chapter-4] cpu 스케줄링  (1) 2024.07.21
    [Chapter-2] 프로세스  (0) 2024.07.21
    [Chapter-1] 시스템 구조  (0) 2024.07.20
    [Chapter-0] Intro  (0) 2024.07.19
Designed by Tistory.