공부 출처

  • 헤더 이미지 및 스레드와 프로세스의 관계성 이해
    프로세스와 스레드의 관계성
  • 테스크와 프로세스는 다르다?
    이 부분은 네이버 블로거 니나농님이 개인 과외를 해주셨습니다..안산 방향으로 목례 올리고 가겠습니다.
    임베디드 지인님 블로그

    테스크

    가장 작은 일의 단위이다.
    그래서 테스크는 일 자체를 의미할 뿐 그것의 실행여부나 현실성(?)여부를 보상하지는 못한다.
    컴퓨터가 발전하면서, 한번에 하나의 일 밖에 못하는 개 멍청한 친구에게 여러가지 일을 시킬 방법에 대해 고민하다 나온 것이 바로 프로세스와 컨텍스트이다.

    프로세스

    프로세스 내에는 컨텍스트만 담기는 것이 아니다.
    맨 처음에는 프로세스 내에 컨텍스트만 담기는 것인 줄 알았으나, 찾아보니 프로세스의 우선순위 및 프로세스의 상태 정보 등이 함께 포함이 되는 것이었다.

    컨텍스트

    컨텍스트 내에는 테스크와 유사하지만, 일의 실행여부에 대한 검증을 끝마친 일들이 들어간다.
    즉 어떠한 작업이 컨텍스트로 적재되었다는 것은 지금 당장에는 실행되지 않을 수 있어도, 언젠가는 실행이 가능한 일임이 보장된다.

    일 외에도

    컨텍스트에는 할 일만 들어가는 것이 아니라, 이 일이 만약 중지되었다가 실행되었을 때에 원래 상태로 돌아갈 수 있도록 도와주는 정보들이 들어가게 된다.

    스레드가 추가되면?

    사실 이건 좀 더 뒤에서 따로 빼서 정리하는 것이 맞지만, 프로세스 내에 적재되는 정보를 다루기 위해서는 얕게 나마 스레드에 대해 함께 쓰는 것이 맞다고 여겨졌다.
    간단하게 설명하자면, 모든 컨텍스트들은 하나 이상의 스레드를 가질 수 있으며 스레드를 뜯어보면 컨텍스트 이외에도 스레드 자신의 우선순위 등등을 담고 있다.

    하나의 일에 두개의 스레드?

    애초에 스레드가 여러 일을 하기 위해 존재하는 것인데 도대체 하나의 일을 또 쪼개서 두개의 스레드로 만드는가라는 의문이 들 수 있다.
    간단하게 설명하자면, 성능향상과 응답성을 올림으로써 사용자 경험을 향상시키는 것이 가능해지기 때문이다.

    컨텍스트 내부의 정보

    간단하게 설명하기 위해 컨텍스트 내부에는 할 일이 담긴다고 하였으나, 사실 컨텍스트에는 그 외에도 일이 다시 시작되었을 때 원상복귀를 위해 필요한 정보들이 들어가야한다. 이때 들어가는 정보들은 프로세스 내의 들어가는 정보와는 조금 다르다.

    프로세스 정보 VS 컨텍스트 정보

    내용물을 보기에 앞서 이 둘 내부의 디테일한 정보 내용의 차이보다 더 중요한 개념이 있다.
    바로 정보의 공유범위 차이이다.
    첵과 내 TIL 속 흐름을 잘 쫓아온 사람들이라면 이 말을 듣자마자 프로세스 정보는 당연 멈추었을 때에도 그 정보를 똑같이 불러올 수 있어야하니 좀 더 전역적인 범위에서도 유의미하게 공유되어야하고 컨텍스트 정보는 프로세스 내부에 있는 해당 스레드에서만 공유되어도 상관 없다는 걸 짐작했을 것이다.
    만약 아니라면, 이걸 읽은 사람의 문제가 아니라 아마 내 티칭 능력이 내 지인보다 딸리기 때문일 것이다…

    컨텍스트 정보

    컨텍스트 내에 실리는 정보는 할 일에 대한 정보와 함께 프로세스의 상태 그리고 어떤 우선순위를 가질 것인가에 대한 내용을 담고있다.
    이 외에도 컨텍스트에는 기존의 일에 대한 상태 저장 등이 함께 이루어지므로, 프로세스가 현재 어떤 상태에 있어서 나를 실행할 수 있는가 없는가를 알 수 있다.
    여기에 더불어서 레지스터의 정보가 함께 들어가는데, 그 이유는 컨텍스트가 프로세스에 올라가서 실행이 되면 사실 이 실행에 대한 정보를 담는 공간이 레지스터이기 때문이다.

    프로세스 정보

    프로세스에는 좀 더 광역적인 정보가 들어간다.
    위에서 설명한 컨텍스트 정보는 당연 프로세스에서 읽어올 수 있고, 그 외에도 프로세스 자신의 식별정보가 들어가있다.
    사실 더 중요한 정보들이 있을 수도 있으나, 아직 내가 이해한 선에서는 이정도의 정보가 중요하다고 느껴져서 내 블로그 글을 읽는 분들이라면 꼭 다른사람들의 글을 통해 정보를 교차점검 하시기를 바란다🙆🏻‍♂️

    내일의 공부 할 것

    밖에 나왔는데도 10년차 임베디드 네이버 블로거 니나농님께서 일요일 12시인가 거의 한시 즈음에 공부할 키워드를 주셨다.보지 않기에는 너무 맛있는 미끼였다.
    가상화에 대한 부분을 공부하고, 가르쳐주신 운영체제의 추상화에 대한 복습을 진행해야겠다.
    군인도 휴가 나오면 쉬지만, 정글러에게 휴가는 쉬는 것이 아닌 새로운 지식을 먹방하러 가는 것이다…

태그:

카테고리:

업데이트:

댓글남기기