Process와 Thread의 차이

Поділитися
Вставка
  • Опубліковано 20 кві 2022
  • 도커 이야기를 하면서 Process에 대해 다뤘습니다. 그렇다면 Thread도 더불어 알아 두고 둘의 차이를 이해하는 것이 매우 중요합니다. 해서 간단히 그 차이를 설명했습니다. 조만간 컴퓨터 구조와 운영체제론을 다룰 예정입니다. 그 때 더 자세히 하겠지만 개념적으로는 이 영상에서 다룬 수준을 알면 충분하리라 생각합니다. 오늘은 2022년 4월 22일 금요일 입니다. 불금 잘보내시기 바랍니다. ^^

КОМЕНТАРІ • 165

  • @ggamzzick
    @ggamzzick 2 роки тому

    올려주시는 영상 다 보려고 노력 중인데... 업로드 속도가 어마어마하시네요...ㅎㅎ 감사합니다 !!!

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому

      아, 그런가요? ^^;;; 요즘 좀 달리고 있습니다.
      열공하시고 필요한 강의 있으면 알려주세요. ^^

  • @jiwonous3358
    @jiwonous3358 Рік тому +2

    그냥 개념 설명에 그치지 않고 컴퓨터 구조와 엮어서 설명해주셔서 이해가 더 잘 됩니다! 손그림과 비유를 해주셔서 살아 움직이는 전공 서적을 보는 느낌이예요 감사합니다.

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  Рік тому

      와우~~! 어마무시한 좋은 평가 감사합니다. '살아 움직이는 전공 서적'이라는 문구는 광고카피로 써도 좋겠다는 생각을 해봅니다. ^^;;;

  • @ninthsun
    @ninthsun Рік тому +1

    좋은 강의 너무 감사합니다. 최근 취업을 준비하며 진행중인 프로젝트가 서버 트래픽 관리가 중요해서 안그래도 스레드를 어떻게 관리할 것인지에 대해 공부하고 있었는데 덕분에 청사진이 더 분명하게 그려집니다. 특히 가상 메모리는 그 중요성을 전혀 인지하지 못했었는데, 여기 영상들 덕분에 저에게 정말 시기적절하게 너무나도 중요하고 필요한 개념이라는 것을 알게되었어요. 이 뒤에도 매우 유익한 내용들이 많이 보이던데 정말 기대됩니다!!

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  Рік тому

      그러셨군요. 마침 타이밍이 잘 맞았나 봅니다. 아울러 좋은 평가와 피드백 감사합니다. ^^

  • @jyk3732
    @jyk3732 2 роки тому +5

    알고리즘에 우연히 떠서 봤는데 이거 말고도 너무 좋은거 많이 올려주셧네요 감사합니다 면접때도 이런식으로 잘 설명하도록 하겟습니다.

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому +1

      아, 면접...!!! 그렇다면 '동기화'에 대해 꼭 함께 언급하셔야 합니다. 뮤택스와 세마포어 차이도 꼭 알고 가시기 바랍니다. 건투를 빕니다!!

  • @user-kt7ix4yt5p
    @user-kt7ix4yt5p 2 роки тому +2

    명강의 나눠주셔서 정말 감사합니다!

  • @9bak
    @9bak 2 роки тому +23

    새벽에 알 수 없는 알고리즘에 의해 우연히 보게 되었는데, 지식의 중요성은 그 깊이와 정확성에 있다고 생각합니다. 진짜 짧게 설명할 수 있는 주제이기도 하지만 그렇게 해서 얻어갈 수 있는게 뭐가 있을까요? 그런 지식은 널리고 널렸습니다. 그런데 여기서 깊이와 정확성 모두 만족하고 가네요. 너무 깊어질 수 있는 부분을 아예 생략하고 넘어가기 보다. '여기에 이런것이 더 있다' 정도의 짧은 첨언으로도 많은 것을 얻을 수 있다고 생각하고 이 강의에는 그런것들이 보여서 너무 좋았습니다. 아예 모르고 넘어가는 것과는 천지차이죠 직접 찾아볼 수도 있으니까요. 저도 현업 종사자이지만 본인이 잘 아는 것과 잘 가르치는 것은 전혀 별개의 영역이라고 생각하는데 정말 좋은 설명이였고 잘 가르치시는거 같습니다. 구독 박고 갑니다.

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому +3

      좋은 평가 감사합니다. 거기에 경력자로써 피드백도 주셔서 더 감사하네요. ^^
      프로세스에 대해서 깊이 다루자면 쏟아 내야 할 이론들이 산더미죠. 그게 학습자를 포기하게 만드는 것 같아 늘 고민입니다. 그렇다고 너무 비유를 남발했다가는 왜곡이 심해질 수 있으니 문제가 되고요. 그 중간 어딘가에서 답을 찾으려 애쓰고 있습니다.
      문제가 될 부분이 있으면 언제든 의견주시면 고맙겠습니다. ^^

    • @ssl8817
      @ssl8817 Рік тому +1

      교수님: A는 이런 특성이 있어요. 근데, 음... 뭐 아닐 수도 있어요ㅎㅎ
      학생: ....?

    • @upamekano
      @upamekano 5 місяців тому

      동감합니다.
      정보의 바다라고 양은 넘치는데 질 좋은 정보들을 찾아내고 취합하는데 꽤나 에너지 소모가 많아진거 같아요.
      저도 좋은 영상 잘보고 갑니다.

  • @suhyunglee9810
    @suhyunglee9810 2 роки тому

    항상 감사드립니다

  • @Deepjae
    @Deepjae 6 місяців тому

    정말 감사드립니다. 큰 도움이 되는 강의였습니다. 정말 너무 좋은 강의입니다.

  • @django3861
    @django3861 2 роки тому

    정말 좋은 영상이네요. 감사합니다

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому

      얼른 운영체제론 강의부터 만들어야 겠네요. ^^ 피드백 감사합니다.

  • @seongjinhong7000
    @seongjinhong7000 2 роки тому

    다시 한번 생각하게 되네요. 감사합니다.

  • @minjeewoo8388
    @minjeewoo8388 Рік тому +1

    좋은 강의 정말 감사드립니다 !! 프로세스와 스레드를 집에 비유해서 이렇게 설명할 수 있다니 정말 감명깊습니다..

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  Рік тому

      좋은 평가 감사합니다. 이해해 도움이 된 것 같아 기쁘네요. ^^

  • @빠광
    @빠광 Рік тому

    정말 이해가 편하게 잘 설명해주시네요 대단하십니다!
    잘 들었습니다 ㅎㅎ

  • @sidsisldkd
    @sidsisldkd Рік тому

    감사합니다 이해하기 쉽게 설명해주셔서😁

  • @user-ux3si3ge2e
    @user-ux3si3ge2e 2 роки тому

    무릅을 탁치고갑니다 명강의 감사합니다

  • @yjlim3020
    @yjlim3020 2 роки тому

    잘 배우고 갑니다. 감사합니다!

  • @jwcha1030
    @jwcha1030 2 роки тому +3

    설명을 너무 잘해주셔서 감사합니다. Memory관련해서 설명하신김에 virtual과 physical memory mapping, memory hierarchy 관련해서 기회가 되시면 영상한번 부탁드려요! 엄청난 복습이 될것같습니다~

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому

      좋은 평가와 피드백 감사합니다. Memory hierarchy에 대하서는 '넓고 얕게...' 시리즈에서 이미 언급해두었습니다. 가상메모리에 대해서도 간단히는 다루었으니 참고하시기 바랍니다. 열공하세요~~~! ^^

  • @user-pk6sm2zi3n
    @user-pk6sm2zi3n 5 місяців тому

    너무 재밌어요 🎉😊 감사합니다 🙇‍♂️

  • @sunjaan552
    @sunjaan552 Рік тому

    좋은 강의 감사합니다.

  • @GlobalYoung7
    @GlobalYoung7 2 роки тому

    감사합니다

  • @zion4442
    @zion4442 2 роки тому

    너무 좋은 강의네요! 다른 영상도 궁금해지네요, 구독하고 갑니다=)

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому +1

      좋은 평가 감사합니다. 다른 강의들도 도움이 됐으면 좋겠습니다. 열공하세요. ^^;

  • @user-cy9co7xl3n
    @user-cy9co7xl3n 2 роки тому

    감사합니다.

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому

      와우~~! 후원 감사합니다. 커피 한 잔 마시겠습니다. ^^

  • @nick6267
    @nick6267 2 роки тому

    구독자 몇천명일 떄 구독 했는데 얼마 안되서 쑥쑥 구독자가 늘어나는 이유를 강의 보면 알 수 밖에 없는 것 같아요

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому

      좋은 평가 감사합니다. 앞으로도 열심히 달려보겠습니다. 열공하세요~~~! ^^

  • @user-lf4yg7pe4s
    @user-lf4yg7pe4s 2 роки тому

    좋네요 요즘 공부 중에 애매했던 것들 잘 챙겨갈 수 있던 것 같아요 ㅎㅎ

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому +1

      좋은 평가와 피드백 감사합니다. 열공하세요~~~! ^^

  • @GyuHyeongJo
    @GyuHyeongJo 2 роки тому +2

    게임 프로그래밍 배우면서 면접대비로 알아두라고 하신거였는데, 집으로 비유한거 듣고 바로 뭔지 느낌이 팍 오네요! 구독자 떡상하시길 빕니다

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому

      좋은 평가과 응원 감사합니다. 열심히 준비해서...운영체제 강의 많이 올리도록 하겠습니다. 열공하세요~~~! ^^

  • @anezo9415
    @anezo9415 Рік тому

    너무 잘 듣고 갑니다

  • @knuckles69749
    @knuckles69749 2 роки тому +16

    이런강의들이 유튜브에 수두룩한데 확실히 현업자이셔서 그런지 퀄리티는 보장이 되어있네요

  • @loco9939
    @loco9939 Рік тому +1

    비전공자로 프론트엔드 개발자 준비하는 취준생입니다. 이해하기 쉬운 설명 정말 감사합니다!

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  Рік тому +2

      프론트 개발자라면...꼭 '이벤트 루프' 개념에 대해서 미리 알아두시기 바랍니다. GUI가지는 모든 환경은 대부분 그 구조가 비슷하기 때문입니다. 건투를 빕니다!

  • @kso3586
    @kso3586 2 роки тому

    그 어떤 책보다 강의보다 이해가 잘됩니다. 정말 감사합니다.

  • @jeffrey0208
    @jeffrey0208 Рік тому

    오 좋은 영상 감사합니다

  • @user-xx1oj9pb5f
    @user-xx1oj9pb5f 2 роки тому

    잘배웠습니다. 감사합니다.

  • @APD-cv2wk
    @APD-cv2wk Рік тому

    책으로만 운영체제 공부하고 있었는데 명강의 감사합니다 🙏🙏🙏

  • @chrisshim2488
    @chrisshim2488 2 роки тому +2

    명강의 감사합니다. 옛날에는 리눅스의 경우 fork가 중요했었죠.

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому +1

      fork + exec...참 추억이 새록새록 합니다. 그 땐 저도 20대 였는데...^^;;;
      그런데 정작 일은 CreateProcess() Win32 API를 호출하는 쪽으로만 하게 됐네요.

  • @leoroh4714
    @leoroh4714 2 роки тому

    운영체제 중간고사 하루전... 최고의 영상

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому

      아! 그렇군요. 시험 잘 보시기 바랍니다. 혹시 이해 안 되는 것 있으면 빨리 질문 올리세요. 오늘 영상하나 더 만들겠습니다. ^^

  • @user-tl8ji9os1y
    @user-tl8ji9os1y Рік тому +2

    중고신입 면접 준비로 OS 개념 정리중에 우연히 들어왔습니다.
    2016년에 군대 전역하고 최호성님의 독하게시작하는C 영상으로 처음 코딩 공부 시작했던 게 생각납니다.
    그때는 본명으로 활동하셨던 것 같은데.. 닉네임이 익숙하다 싶어서 찾아봤더니 역시 그 분이 맞으시네요.
    아직까지 강의 활동을 하고계신다니 놀랐습니다.
    훌륭한 개발자가 되진 못했지만 그래도 그때를 시작으로 이걸로 밥은 잘 벌어먹고 살고 있네요. 감사합니다.
    반가운 마음에 댓글 남겼습니다. 건강하세요!

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  Рік тому +2

      와우~~! 저도 반갑습니다. 음...저도 딱히 '훌륭'과는 거리가 멉니다. ^^;;;
      내 인상 잘 건사 할 수 있으면 다행이 아니겠나 생각하고 있지요.
      모쪼록 원하시는 일 잘 이루시면 좋겠습니다. 건투를 빕니다!

    • @user-tl8ji9os1y
      @user-tl8ji9os1y Рік тому

      @@nullnull_not_eq_null
      감사합니다. C언어 강의 때도 강의력이 훌륭하시다고 생각했었는데 요즘 올리신 다른 영상들도 주제들이 너무 좋아보이네요.
      같은 CS 이론이어도 좀 더 깊이있게 다뤄주시는 영상임이 썸네일과 제목에서 느껴집니다.
      앞으로도 공부하는 데 많은 도움이 될 듯 하네요. 감사합니다~

  • @user-jj1pb6yj7k
    @user-jj1pb6yj7k 2 роки тому +2

    시스템 엔지니어인데 퇴사하고 독하게,이것이c++이다 사서 공부시작했습니다. c언어가 모든 언어의 뿌리인데 ,평생 아이티분야에 있으려면 그 뿌리를 알고가야 롱런하겠다고 생각했기도 했고, 개인적으로 제 인생에서 거의 모든일들이 다시 기본으로 돌아가게 되는 일들이 많았었습니다. 몇주로 그 뿌리를 알고 가는게 훨씬 가치있는 미래가 있겠죠? ㅎㅎ 구독 +1 추가되셨습니다.

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому +1

      우와...큰 결심을 하셨나봅니다. 퇴사까지 하시다니!!!
      구독 감사하고 ㅋㅎ님의 노력에 박수를 보냅니다. 공부하시다가 질문 있으면 언제든 질문 올려주시기 바랍니다. 가능하다면 강의도 만들어 올리겠습니다. 열공하세요~~~! ^^

  • @gaekokdj
    @gaekokdj 2 роки тому +1

    아침 일찍 올려주셨네요!
    출근하면서 시간가는줄 모르고 들었습니다.
    강의에서 말씀하시는 멀티태스킹과 동기화가 Context Switching과 연관이 있는 건가요?

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому +1

      Context switching이라는 말은 마치 '차선변경'과 같습니다. 정말 여기저기서 다 씁니다. 일단 그점 참고하시고요. 스레드 동기화 과정에서 스위칭은 수반됩니다. 그러므로 문맥교환이 일어난다고 말할 수 있지요. ^^

    • @gaekokdj
      @gaekokdj 2 роки тому

      ​@@nullnull_not_eq_null 단순히 운영체제 영역에서만 통용되는 단어는 아닌가보네요.
      답변 감사합니다!

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому +3

      IT기술이 서양인의 것이다보니 그들이 쉽게 설명한다고 비유적으로 표현한 것을 사실어로 받아들이면서 비극(?)이 시작됩니다. 모호한 표현이 있으면 언제든 질문 올리세요.
      '인생에 바보 같은 질문 없습니다.' (샘 해밍턴)

  • @heepa6722
    @heepa6722 9 місяців тому +2

    항상 헷깔렸는데 좋은 예시 감사합니다.
    프로세스 : 한 가구
    스레드 : 세대원 각각
    버추얼메모리 : 한 가구가 존재하는
    공간
    프로세스는 스레드가 사용? 하는 버추얼 메모리(집)를 할당 받는다.
    스레드(구성원)는 여러개가 있을 수 있고, 각각 스레드는 독립된 방인 로컬 스레드 스토리지가 있다.
    스레드들이 공유해서 사용할 수 있는 거실, 화장실 같은 공간(힙)이 있다.

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  9 місяців тому

      도움이 됐다니 다행이네요. 좋은 평가 고맙습니다. :)

  • @hhahn1240
    @hhahn1240 2 роки тому

    명쾌한 강의 감사합니다. 강의 간 질문사항이 생겼는데 os가 process에 virtualMemory를 부여할 때 ram이 충분하다면(사용하지 않는 memory가 있다면) hdd(ssd)는 따로 사용하지 않나요?

  • @DieGo-yt9zt
    @DieGo-yt9zt Рік тому +2

    보통 차이는 아는데 vm에 대한 건 너무 좋았습니다.

  • @user-ct7ij5nn1l
    @user-ct7ij5nn1l Рік тому

    ㄹㅇ 설명 작살나게 잘하시네요 ㅎㅎ

  • @SsS-pf6tt
    @SsS-pf6tt Рік тому

    이해도를 높여주는 설명(+도식화) 감사합니다. 혹시 블로그에 공부한 기록 작성할 때 화면 캡쳐해서 인용해도 될까요?

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  Рік тому

      네, 출처만 잘 밝혀주시기 바랍니다. 열공하시고 좋은 결과 얻으시기 바랍니다. :)

  • @user-yq2qs7gs4o
    @user-yq2qs7gs4o Рік тому +2

    좋은 강의 감사합니다!
    강의 중에 말씀해주신 쓰레드가 소비하는 리소스 단위는 CPU내의 쓰레드 (프로세내의 쓰레드수 = CPU내의 쓰레드수) 가 맞나요?
    예전부터 java같은 프로그래밍에서 말하는 쓰레드와 CPU쓰레드가 동일한것인지 헷갈려서요..

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  Рік тому +1

      프로세스 내부에 스레드가 몇 개가 되든 한 스레드는 CPU 코어 하나를 사용합니다. 다만 코어 하나가 두 스레드의 명령을 동시에 받는 구조 때문에 물리코어 1개가 2개의 논리코어로 보이기는 합니다. 그리고 '한 프로세서'는 보통 CPU 물리 코어 하나와 같다고 보시면 되겠습니다.
      그리고 JAVA는 JVM을 기반으로 스레드가 생성됩니다. 다만 이 스레드가 네이티브 스레드 하나와 1:1로 매핑되기도 합니다만 어쨌든 둘은 다른 관점에서 접근하는 것이 좋겠습니다. 참고하시기 바랍니다.

  • @SwordMasterZeroSpeed
    @SwordMasterZeroSpeed Рік тому

    잘 배웠습니다.

  • @user-sf8mp8qo7h
    @user-sf8mp8qo7h 2 роки тому +3

    쓰레드는 각자의 스텍을 가지고, 힙은 공유를 한다....
    이렇게 하면, 상당히 효율적으로 일을 할 수 있겠네요.
    쓰레드 개별적인 데이터는 보호를 하면서, 공유해야할 데이터는 힙영역을 이용하니까...
    좋은데요, 이걸 구현 하는 사람은 힘들겠지만...
    감사합니다.

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому +1

      이게 자료구조에서 사실 다 배우는 것들이죠. 이래서 자료구조가 중요하다 중요하다...다들 강조하는 것 같다 생각합니다. ^^

  • @user-bz7gs7cv3o
    @user-bz7gs7cv3o 2 роки тому +4

    좋은 강의 감사합니다!
    질문이 있는데 Blocking, Non-Blocking, Synchronous, Asynchronous의 차이점이 궁금합니다. 구글로 검색해서 내용을 찾아봐도 잘 이해가 되지 않네요 😂

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому +5

      음...아마도 Blocking I/O라고 검색해야 나오지 않을까 싶습니다. 오늘(2022-04-23)강의를 만들어 올리겠습니다. ^^

    • @user-bz7gs7cv3o
      @user-bz7gs7cv3o 2 роки тому +1

      @@nullnull_not_eq_null 감사합니다🙏

  • @user-zf3st5ut8i
    @user-zf3st5ut8i 2 роки тому

    명확한 설명 감사합니다. 하나 질문이 있는데, 만약 제가 짠 배열스택코드를 실행시킬때, 배열을 생성하고 삽입하고 삭제하는 흐름이 각각의 스레드이며, 그 흐름으로 인해 데이터가 저장되는 공간이 thread local storage인 걸까요?

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому +2

      Thread마다 스택을 따로 갖는 것은 매우 당연해서 이것을 TLS라고 부르지는 않습니다. 음...Thread마다 고유하게 전역변수 같은 것을 사용하기 위해 존재하는 공간으로 TLS를 이해하는 것이 바람직 하겠습니다. 감사합니다. ^^

  • @user-kq1de9ef2t
    @user-kq1de9ef2t Рік тому +1

    좋은 영상 너무 감사드립니다.
    혹시 하고 덧글을 모두 보았으나 같을 질문을 하신 분이 안 계셔서 질문을 하나 남겨봅니다.
    Thread는 process의 메모리 영역으로 메모리가 제한된다고 말씀 해주셨는데 어떤 쓰레드가 메모리를 더 요청하면 그 요청이 프로세스 -> os 이렇게 전달 되나요? 스레드가 바로 요청을 하는 것이 아니라?

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  Рік тому +1

      그렇지는 않습니다. 프로세스에게 이미 주어진 가상 공간이 있습니다. 이 공간을 일정 단위(Page)로 잘라 실제 메모리와 매핑(Commit)하면 사용할 수 있는 주소 영역이 됩니다. 이 과정에서 스레드의 모든 요청은 프로세스를 거치는 것이 아니라 즉시 이루어집니다. 내 손과 발이 나를 이루는 내 자신 그 자체이듯 기본적으로 스레드는 프로세스의 일부로 생각하면 되겠습니다.

  • @ysh940
    @ysh940 2 роки тому

    항상 강의 잘 보고 있습니다! 질문 한가지 드려도될까요?? MFC 기반 프로그래밍 중, 단순 연산 작업을 멀티스레드로 구현하면 CPU 자원을 활용하여 시간이 단축되나요? 아니면 컨텍스트 스위칭으로 인해 시간이 증가하나요?

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому

      어떤 작업이냐에 따라 달라지겠습니다. 시간 단축이라는 것은 효율이나 성능을 의미하는 것 같은데...동시성 혹은 병렬성을 성능향상을 기대할 수 있는 경우가 아니라면 멀티스레드로 시간 단축은 어려울 것으로 보입니다.

  • @user-ih9wp2qn2q
    @user-ih9wp2qn2q 2 роки тому +1

    스레드를 생성하는게 부하를 많이 준다고 블로그에 보았지만 그 누구도 어떻게 부하가 발생하는지 설명한걸 보지못했습니다. 기회가 되신다면 이 부분도 강의부탁드립니다.

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому

      답글로는 다 설명하기가 어려워 영상으로 답변합니다. 참고하세요~~~! ^^
      ua-cam.com/video/v-iM8Wd2Wd4/v-deo.html

  • @persistento3097
    @persistento3097 2 роки тому +1

    아침 업로드네요 ㅋㅋ

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому +1

      네, 오늘은 밤사이 올라온 질문에 답하느라 일찍 올렸습니다. 열공하세요. ^^

  • @ssonacy
    @ssonacy 2 роки тому +1

    예전에 제프리 리처 책을 봤던 기억이 새록 새록 떠오르네요 ㅎ

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому

      그렇죠. 제프리...^^;;; 아마 죽을 때까지 안 잊혀질 이름일 겁니다. ^^;;;

  • @user-mm8sq9gw1p
    @user-mm8sq9gw1p 2 роки тому +2

    업무시간에 하는 개인공부...짜릿해..

  • @gudrbe
    @gudrbe 2 роки тому

    좋은강의 감사합니다!
    궁금한 점이 있습니다.
    Cpu코어가 4개 있고, 프로세스 하나에 멀티 쓰레딩으로 작업하는 프로그램이 있으면, 이때 이 프로그램은 cpu 코어 4개를 모두 사용하나요??

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому

      특별히 설정을 변경하지 않았다면 모두 사용합니다. 단, 코드 내용 중 대기상태가 많다면 그렇지 않을 수도 있습니다. 참고하시기 바랍니다. 감사합니다.

    • @gudrbe
      @gudrbe 2 роки тому

      @@nullnull_not_eq_null 그렇군요! 감사합니다!

  • @gojin200
    @gojin200 2 роки тому

    안녕하세요 지인 추천으로 개발자님 강의 영상을 접하게됬습니다. 혹시 출처를 남기고 강의에 있는 내용을 공부하면서 블로그에 정리해서 올려도 될까요?

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому

      네, 그렇게 하시고 좋은 성과도 거두기 바랍니다. 건투를 빕니다!

  • @django3861
    @django3861 2 роки тому

    도커 기초부터 잘 다지기 스터디
    1강 시청 완료 / 5월 10일 / 출근길에 들었음

  • @user-et9uo4xt5i
    @user-et9uo4xt5i Рік тому +1

    가상메모리에 대해 선생님처럼 얘기해 주시는 분이 많습니다. 근데 제가 학사 때 교수님께선 "ram에 자주 사용하는 일부만 올리고(페이지 or 세그먼트) 올라온 ram영역을 물리메모리라한다. 그 외는 hdd에 있을 것이고 이 영역을 가상메모리라고 한다" 라고 하십니다. 이해하는데 문젠없지만 면접 볼 때 단어 선택을 어떻게해야할지 궁금하네요

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  Рік тому +2

      음...그 교수님께서 어떤 의도로 그리 말씀하셨는지 모르겠습니다. 제 생각으로는 그것은 잘못된 설명입니다. 가상 메모리 체계는 1차 메모리 RAM과 2차 메모리 HDD를 하나의 논리적 메모리(RAM)으로 추상화 하는 것입니다. 체계 내부에서 스왑이 일어나는 것은 구조의 문제이고 가상 메모리 체계를 활용하는 응용 프로그램 입장에서는 RAM과 HDD를 구별할 수 없습니다. 참고하시기 바랍니다.

  • @holiclove
    @holiclove 2 роки тому

    지나가다 슬쩍 잘 보고가요

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому +1

      피드백 감사합니다. 도움되는 영상이었는지 모르겠네요. ^^

    • @holiclove
      @holiclove 2 роки тому

      @@nullnull_not_eq_null 🧐amd5950x 쓰면서 스래드기능 off에 대해 궁금해서 이것저것 알아보던중에 본거라 궁금증이 해결된건 아니지만 지식이 살포시 확연해진 기분이네요😏

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому +1

      아...그러시군요. CPU 수준에서 이야기하는 것이라면...이 영상 내용과는 차이가 좀 있습니다. 물리 Core당 동시처리 스래드 개수가 보통 2개라서...16코어의 경우 32개 스레드 동시처리가 가능하지요. ^^

  • @ll-bc4gn
    @ll-bc4gn 2 роки тому +2

    왜 우리 학교 교수는 이런 강의 퀄이 안나오는거냐 ㅠㅠ흑흑

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому

      좋은 평가 감사합니다. 앞으로도 열심히 강의 만들어 올리겠습니다. ^^

  • @django3861
    @django3861 2 роки тому +1

    가상메모리가 이렇게 중요한 지 몰랐습니다. 가상메모리자체도 잘 몰랐지만요... ㅎㅎ

  • @user-ny8bz9pf9g
    @user-ny8bz9pf9g 2 роки тому +2

    오늘 운영체제 시험보는 날인데 학교가는 길에 복습용으로 보겠습니다 ㄷㄷ

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому

      아하!! 그럼 동기화 이야기를 더 할 것을 그랬네요. 멀티태스킹 환경에서 가장 중요한 이슈는 동기화 입니다!!! 시험 잘 보세요~~~! ^^

    • @user-ny8bz9pf9g
      @user-ny8bz9pf9g 2 роки тому

      @@nullnull_not_eq_null 일단 동시버퍼 독자저자 철학자테이블문제 대표적인 3개만 공부했는데 중요하다고 하시니 시험보기전에
      한번 더 보고 들어가야겠네요 감사합니다!

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому

      @@user-ny8bz9pf9g 그게 동기화 이슈 입니다. 최악이 바로 Deadlock 이죠. 철학자 테이블은 모르겠고...남북관계가 딱 데드락 입니다. 니가 핵을 포기해할 그럼 도와줄께, 먼저 도와줘라 핵 포기할 께...뭐 이런 것!!!
      해서 등장하는 신호체계가 뮤택스, 세마포어, 시그널(윈도우에서는 이벤트)입니다. 참고하세요. ^^

    • @user-ny8bz9pf9g
      @user-ny8bz9pf9g 2 роки тому

      @@nullnull_not_eq_null 감사합니다 오늘 시험 잘 보고 오겠습니다!

  • @jw_sw8157
    @jw_sw8157 9 місяців тому

    This is legendary.

  • @user-jz8qt2px2b
    @user-jz8qt2px2b 5 місяців тому

    선생님 인프런으로 운영체제 강의 듣고 있는데 혹시 내용에 대해 궁금한점은 어디에 질문하면 될까요 ??

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  4 місяці тому

      그렇다면 인프런 질문 답변 게시판을 이용해주시기 바랍니다. :)

  • @user-te1lu2wz1u
    @user-te1lu2wz1u 3 місяці тому

    스레드별로 힙을 구분하지 않고 힙은 나누는 이유가 무엇일까요? 프로세스의 사용자 영역에서 힙과 스택은 같은 공간을 공유하면서 사용된다고 알고있는데 그러면 스레드 단위에서도 같이 묶어서 관리해야하는것 아닌가요..??

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 місяці тому

      힙을 나눈다는 것이 공용으로 함께 사용한다는 의미로 해석했을 때 효율과 필요성의 문제가 아닐까 싶습니다. 왜 대한민국의 아파트들은 각 방마다 별도로 거실을 따로 만들지 않을까요? :)

  • @Learn96
    @Learn96 2 роки тому +1

    내용은 만족인데 마이크 볼륨 좀 크게 해주시면 감사하겠습니다. 볼륨 확 올려놨다가 중간에 광고 나오거나 다른 영상 틀 때 깜짝깜짝 놀라요.

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому

      피드백 감사합니다. 최근에 올린 영상들은 고려가 되어 있습니다. 아무래도 재촬영을 고려하던가 해야 겠네요. ^^

  • @liuryangru2104
    @liuryangru2104 Рік тому

    4코어 8쓰레드..라는 쓰레드가 설명하시는 쓰레드와 동일한 개념인가요 ?

  • @boganjung
    @boganjung 5 місяців тому

    출퇴근 시간의 영감

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  5 місяців тому +1

      시간활용을 잘 하고 계시는 군요! 피드백 고맙습니다. :)

  • @makiseify
    @makiseify 6 місяців тому +1

    인텔의 HT개념까지 OS에서 인지 하는 거라 운영체제 배우는 관점에서는 어렵네요. 6코어 12쓰레드는 6코어 자원을 분할 해서 하는 터라 앱도 가상 메모리 최대 분배량이 32비트냐 64비트냐 ARM아키텍쳐냐 aarch64(제가 본 책에서는 개념이 모호함) 따라서 다르게 설명 되어 있네요.
    윈도우즈에서 관리하는 가상 메모리는 실제로
    물리적 메모리
    ㄴ페이지 파일(pf) -non UWP
    ㄴ스왑 파일(swap) -UWP
    를 합쳐서 가상 메모리 개념이라고 인식 하시면 됩니다
    64비트는 윈도우 버전마다 앱 별로 가상 메모리 할당 가능한 용량이 다릅니다. 32비트는 2gb가 기본으로 알고 있습니다.
    시스템 엔지니어로 공부하는 데 프로그래밍 기초 때보다 더 어렵네요.
    일단 설명하시는 부분은 기초라서 극히 제가 보는 부분의 일부분입니다. 이걸 보니까 대충 감은 잡히네요. 책에서도 비슷한 개념이 나오거든요 프로새스, 쓰레드, 메모리 관리 이런 부분에서요

  • @dwlee08
    @dwlee08 2 роки тому

    저희 파트 신입 사원 교육자료로 써도 되겠어요

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому

      음...올 여름이 오면 그렇게 하실 수 있는 플랫폼 하나 열어 보겠습니다. 열공했는지 확인도 하셔야 할 테니까...^^ (요즘 웹 개발 열심히 공부하고 있습니다!)
      그런데 어떤 업무를 하시는 파트인지 궁금하네요. ^^

  • @user-hm6mk3no5r
    @user-hm6mk3no5r 2 роки тому

    소리가 좀 작네요...

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому

      피드백 감사합니다. 나중에 확인해보니 마이크를 너무 멀리 떼고 촬영을 했더라고요...ㅜㅜ 앞으로 주의하겠습니다. ^^

  • @demian66
    @demian66 Рік тому

    18:08 위에가 스레드위주로 가는거고 아래가 프로세스 위주로 간다고 하셨는데 설명이 바뀐 거 아닌가요? 이해가 잘 안가네요 그림이 위에가 프로세스 위주로 가는 그림인거같고 아래가 스레드 위주로 가는거 같다고 보여서요

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  Рік тому

      아니오. 그렇지 않습니다. 위쪽이 한 프로세스 + 멀티스레딩 아래쪽이 멀티 프로세싱을 의미합니다. 참고하시기 바랍니다.

  • @andrew44312
    @andrew44312 Рік тому

    코어는 뭘까요?

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  Рік тому

      요즘 CPU는 물리적으로 1개만 구매하더라도 마치 여러 개를 한 번에 구매한 것처럼 여러 CPU가 한 CPU 묶음으로 만들어져 있습니다. 예를 들어 CPU 8개 한 묶음이 CPU 한 개라면 실제로는 8개 CPU가 있는 것이지요. 이 각각을 Core라 하는 것입니다. 참고하시기 바랍니다.

    • @andrew44312
      @andrew44312 Рік тому

      @@nullnull_not_eq_null 코어또한 가상 연산자산 같은 건가보군요. 영상에서 OS가 가상 연산자산을 할당하고 관리한다고 설명하셨는데, VMware ESXi 같은 Type-1 hypervisor에서도 가상 자원을 비슷하게 운용되는걸까요 아니면 하드웨어를 다이렉트로 이용하는걸까요?

  • @pentahousergroupkorea4792
    @pentahousergroupkorea4792 2 роки тому +24

    00:40 Process와 Thread의 차이 개요
    03:53 Layer Level에서의 Process / Thread 구동 과정 설명
    10:08 Process / Thread Concept 중간 Summary
    12:41 한 가구 ( Household ) 안 여러 식구 비유
    16:30 일거리 분배 비유
    18:45 Good Bye Ment - 불타는 금요일에는...

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому +1

      정리 감사합니다. 제가 길게 풀어 놓는 스타일이다보니...이렇게 정리해주시면 보시는 분들께 도움이 되리라 확신합니다. ^^

    • @pentahousergroupkorea4792
      @pentahousergroupkorea4792 2 роки тому

      @@nullnull_not_eq_null 저야 말로 좋은 강의 감사합니다 ^^ 같이 일하는 주니어 개발자들에게도 공유했습니다 ㅎㅎ

  • @consciousinvestor5473
    @consciousinvestor5473 Рік тому

    목소리가 너무 적네요

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  Рік тому

      피드백 감사합니다. 최근 영상들은 조정을 했습니다. 과거 영상들에 대해서는 재촬영을 고려해보겠습니다.

  • @jaekwonjin5152
    @jaekwonjin5152 2 роки тому

    메모리가 공유되냐 아니냐 이 차이 아닌가? 나머지는 똑같은데, 타임쉐어링으로 처리하는 것도 그렇고 이걸 이렇게 길게 설명할 이유가? 있는지 모르겠네요.

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  2 роки тому

      그게 저도 항상 고민입니다. 그 적정 선을 찾기가 쉽지가 않더라고요...^^ 의견 감사합니다.

    • @9bak
      @9bak 2 роки тому +1

      나머지는 똑같다고 보기에는 좀... 운영체제적으로 TCB, PCB는 구조체 모양부터가 다르고 Thread도 user-level thread, kernel-level thread로 나뉠 수 있겠죠. 말씀하신 타임쉐어링이 똑같은건 kernel-level thread만 그렇구요...

  • @marspark6351
    @marspark6351 Рік тому

    Process와 Thread 차이에 대해서 굉장히 큰 차이가 또 있는데 영상 또는 높은 위치의 댓글에 관련 보충 설명이 없어 추가합니다.
    영상에 나왔듯이 하나의 Process에서 여러 Thread로 나뉩니다. 영상에서는 한 집에서 여러 사람이 살아서 동시에 여러 사람이 작동하는것 처럼 비유하지만 그렇지 않습니다. Process는 한 연산을 하나씩 처리합니다. 이 연산 우선권을 여러 Thread들 중 하나 한테 부여합니다. 그럼 다른 Thread들은 그 우선권이 자기한테 부여될때까지 기다려야합니다.
    왜 이렇게 되어있냐?
    한 Thread A가 한 프로그램 a를 돌리고 있고 다른 Thread B가 프로그램 b를 돌리고 있다고 봅시다.
    a를 돌릴때 메모리에서 어떤 정보를 읽어서 그 정보를 받아야지만 다음 단계로 넘어갈 수 있다봅시다.
    메모리는 물리적인 공간에 읽고 써야되는 것이니까 시간이 걸립니다.
    그럼 메모리에서 그 정보가 도착할때까지 기다려야하지 않습니까?
    그 기다리는 시간에 B한테 연산 우선권을 주는겁니다.
    즉,
    1. Process가 여러 개 있다는 소리는 각 process가 각자 동시에 연산한다는 것.
    2. Thread들은 동시에 연산하는게 아니라 연산 우선권을 주고 받는것

    • @nullnull_not_eq_null
      @nullnull_not_eq_null  Рік тому +2

      잘못 알고 계시는 것 같습니다. 주요내용이 싱글코어 + 과거 Linux 중심 이해로 보입니다.
      CPU라는 전산자원은 프로세스 단위로 배정됩니다. 보통 CPU 코어가 여럿이고 모든 코어를 다 사용하도록 프로세스 친화력을 설정하므로 내부에 여러 스레드가 존재할 경우 실제로 여러 코어가 동시에 스레드 연산을 처리합니다.
      그리고 스레드가 여럿인 환경에서 특정 메모리에 동시접근하는 경우 각각의 스레드가 경쟁조건에 빠지지 않도록 제어하는 것은 전형적인 동기화 이슈 입니다. 그리고 '메모리에 정보가 도착할 때까지 기다린다'라는 의견으로 짐작해보면 이는 멀티 프로세싱 환경에서 공유 메모리 기반 IPC를 생각한 것으로 보이며 같은 구조를 멀티스레드와 결합해 혼동한 것으로 추정됩니다. 참고하시기 바랍니다. 감사합니다.