ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 6. 프로세스 개념
    운영체제 2018. 12. 13. 17:59

    프로세스란?

    간단히 말해, 실행중인 프로그램


    Mac OS에서 프로세스 보기 : Spotlight에서 [활성 상태 보기]를 입력

    CPU를 점유하는 친구들


    메모리가 어떻게 사용되고있나


    각 프로세스가 디스크에서 읽고 쓴 데이터


    멜론, 구글 크롬, 카카오톡처럼 현재 돌아가는 프로그램이 프로세스다. 

    CPU는 이런 프로세스들이 구동되도록 도와주는 프로세서


    그런데, 프로그램 = 프로세스가 아니다.

    그 차이는, 실행했냐 아니냐?

    프로그램은 생명이 없다. 그냥 정적인 데이터

    이런 프로그램을 메모리에 적재하고 실행할때 프로세스가 된다.

    즉 프로세스는 실행중인 프로그램.


    CPU는 하나인데, 어떻게 우린 여러가지 작업을 한번에 수행할 수 있을까?

    위의 프로세스들을 보면, 나는 지금 멜론을 틀으며 음악을 듣고, 카카오톡도 하면서 구글 크롬으로 블로그를 작성하고 있다.


    결론은 CPU는 하나의 일만 수행하고 있지만, 빠르게 프로세스를 교체하면서 여러 작업을 동시에 하는 것 처럼 보여지는 것이다. 이런 프로세스 스케줄링에 대해선 다음에 얘기하고, 지금은 프로세스 상태에 대해서 얘기할 것이다.


    프로세스 상태

    그렇다면, 현재 CPU를 점유하면서 실행중인 프로세스가 있을 것이고, 또 잠시 물러나서 실행되기를 기다리는 프로세스도 있을 것이다.



    NEW  : 프로세스가 생성 중이다. 카톡 킴


    READY : 생성하고나서, 실행할 준비 완료했다. 여차하면 바로 실행


    RUNNING : 프로세스 실행중


    WAITING(BLOCKED) : 현재 실행중인데, I/O나 어떤 이벤트 발생하면, 잠시 물러난다.


    TERMINATED : 종료됐다.


    프로세스 구조




    메모리 상에 프로세스는 다음과 같이 올라간다.


    만약 우리가 코드를 짜고 프로그램을 실행했다고 생각해보자...


    TEXT : CPU에서 실행될 명령어들은 여기에 있다. (코드)


    DATA : 전역 변수가 들어간다.



    위 두개는 크기가 변하지 않는다.


    HEAP : new나 malloc처럼, 동적 할당해준 친구들이 

    여기 들어간다.그래서 가변적이다.


    STACK : 여긴 지역 변수가 들어간다. 함수가 끝나면 지역 변수도 

     사라지니까 얘도 늘어났다 줄어들다 그런다.






    반응형

    '운영체제' 카테고리의 다른 글

    5. 파일 시스템  (0) 2018.12.13
    4.1 Disk Scheduling  (0) 2018.12.12
    4. Disk 구조  (0) 2018.12.12
    3. 운영체제 구조  (0) 2018.12.12
    2. 운영체제 운용 기법  (0) 2018.09.26

    댓글

Designed by Tistory.