동기화가 처음엔 이해하기가 좀 어려울 수 있어요 ㅠ 하지만 조금만 익숙해지면 금방 적응하실 수 있을거에요 :)
@loygg22 жыл бұрын
좋은 강의 감사합니다! 이해하기 쉽게 강의해주셔서 듣는내내 끄덕 거리면서 봤습니다 ㅎㅎ
@ezcd2 жыл бұрын
크 칭찬 댓글 감사합니다~!! 쉽게 설명하려고 항상 노력하는데 이런 댓글을 보면 노력이 결과로 이어지고 있는 것 같아서 마음이 뿌듯해지고 큰 힘이 됩니다~! 고맙습니다 :)
@ghettibullzza2885 Жыл бұрын
좋아요를 안누를수 없습니다
@ezcd Жыл бұрын
헤헤 감사합니다 :) 큰 힘이 됩니다 👍
@weyoung13462 жыл бұрын
안녕하세요! 강의 잘 들었습니다. 제가 운영체제 파트가 부실한데 프로세스 강의부터 아주 쉽게 공부하고 있습니다! 명확하고 천천히 설명해 주셔서 이해하기에 너무 좋아요! 다음 해결에 대한 강의를 듣기 전 혼자 생각하다가 임계 영역에 대해 여쭤보고 싶은 부분이 생겼습니다. 임계 영역을 코드적인 영역으로 이해하였는데요, 이 부분을 db의 임의의 테이블의 특정 row 처럼 여러 thread가 조작을 할 수 있는 영역 혹은 힙이나 메소드 영역에 저장된 클래스 중에 상태값을 갖는, 전역 변수를 갖는 영역으로 파악하였는데 맞을까요?? 위 테이블 row나 전역 변수 외에 경쟁 조건이 생길 수 있는 좋은 예시가 있을까요?? 또한 지역 변수는 thread 별 스택에 저장되는 값이라 경쟁 조건과 무관하다고 파악하였는데 맞을까요??.. 앞으로도 많은 강의 부탁드립니다ㅠ 정말 너무 잘 듣고 있습니다!! 감사합니다 ㅎㅎ
@ezcd2 жыл бұрын
크~! 영상을 유익하게 봐주셔서 감사합니다 :) 도움이 된 것 같아서 저도 많이 뿌듯하네요 👍 탐구하시는 모습 멋지십니다!!! 질문주신 내용에 간단히 답변드리면, 같은 프로세스에 속하는 스레드들은 메모리 영역을 공유하는데 특히 힙 영역을 공유하기 때문에 힙 영역에 있는 데이터를 여러 스레드들이 동시에 접근해서 읽기/쓰기를 하려고 하면 데이터 값이 예상과 다르게 바뀔 수 있습니다 이를 막기 위해서 임계 영역(critical section)을 만들어서 그 안에서는 데이터에 대한 접근을 한번에 하나의 스레드만 가능하도록 하게 하는 거죠 (mutual exclusion) 그러므로 임계 영역 안에는 프로그래밍 언어로 작성된 코드가 있고, 실제로 그 코드가 실행되면, 해당 임계 영역에는 한번에 하나의 스레드만 진입 가능하며, 해당 스레드는 임계 영역 안의 코드를 실행함으로써 힙 영역에 있는 데이터에 접근을 하게 된다고 보시면 되겠습니다 참고로 전역 변수라는 표현은 조금은 애매할 수 있습니다 전역 변수의 의미가 어떠한 영역에서도 접근 가능한 변수라는 의미인데, 꼭 전역 변수가 아니더라도 여러 스레드가 같은 데이터를 공유할 수 있으니까요 경쟁 조건은 서로 다른 프로세스에서도 발생할 수 있습니다 서로 다른 프로세스의 경우에는 기본적으로 메모리 영역을 공유하지 않지만, shared memory 영역을 만들고 여러 프로세스를 해당 메모리 영역에 매칭시키면, 스레드들처럼 프로세스들도 같은 메모리 공간에 접근 가능하기 때문에 이런 경우에는 경쟁 조건(race condition)이 발생할 수 있겠죠 끝으로 말씀하신 것처럼 지역 변수는 함수나 메소드 내에 국한된 변수이기 때문에 경쟁 조건이 발생하지 않습니다 항상 애청해 주셔서 정말 감사해요~!! 답변이 도움이 됐길 바라요 :)
@weyoung13462 жыл бұрын
@@ezcd 너무 좋은 답변 감사합니다! 이해가 더 확실하게 되었습니다 ㅠㅠ 감사합니다!!
@ezcd2 жыл бұрын
@@weyoung1346 항상 응원합니다!!! 추석 연휴 곧 시작인데 즐거운 한가위 되세요 :)
@user-dmddnjs92 жыл бұрын
진짜 최고인거같아요ㅠ 뒤죽박죽 아무것도 안 와닿았는데 여기 15개 강의들으니까 교안봐도 무슨말하는지 알겠고 예제들도 머릿속에 생각나서 이해하기 훨씬 쉬워졌어요 좋은 강의 감사합니다 ㅜㅜ
@ezcd2 жыл бұрын
크 ㅠㅠ 좋게 봐주셔서 정말 감사합니다 ㅠㅠ 앞으로도 알차고 유익한 내용들로 자주 자주 도움드릴 수 있도록 파이팅 하겠습니다 :) 👍
@hml1392 жыл бұрын
동기화가 중요하다!
@ezcd2 жыл бұрын
맞습니다! 동기화 정말 중요합니다!
@2023-c9p Жыл бұрын
❤
@ezcd Жыл бұрын
😍❤
@joon9613 Жыл бұрын
안녕하세요, 영어권대학에서 공부하다보니 부족한 영어로 인해 개념적인 이해가 제대로 되지 않아서 다시 공부하고 있었는데 정말 이해하기 쉽게 개념들을 이해시켜주셔서 이해가 너무 잘됩니다!! 이런 좋은 컨텐츠들을 만들어주셔서 감사합니다 :)
@ezcd Жыл бұрын
안녕하세요~! 멀리서 공부하시느라 정말 대단하시고 한편으로는 고생도 많으실 것 같아요 ㅠㅠ 우선 항상 힘내셨으면 좋겠구요~! 좋은 댓글과 응원의 마음 남겨주셔서 감사합니다!! 앞으로도 파이팅 해서 조금이라도 공부하시는 데 도움될 수 있도록 할게요 :)
@bum70062 жыл бұрын
파이썬에서 cachetools라는 라이브러리로 로컬캐싱을 많이 쓰는 것으로 알고 있어요. 저도 한번 넣은 적 있구요. 헌데 이 cachetools 에서 제공하는 캐시가 thread-safe하게 동작하기 위해서는 cache 선언하면서 parameter에 lock 을 넣어주어야하는데 문서나 예제 코드들에서는 굳이 lock을 넣어주지 않아서 실수 할 여지가 존재하는거같아요. default가 thread-safe하지 않거든요. 이로 인해서 발생할 수 있는 문제점은 캐싱 데이터가 만료되거나 삭제 될 때, 에러가 발생합니다. 특정 스레드가 이미 지운걸 다른 스레드가 이미 지워진걸 지우는 현상이 발생하더라구요 ㅎㅎ 또 캐시 사이즈도 처음 캐시 선언하면서 정해주는데, 캐싱된 아이템을 삭제할 때, 동시성 이슈가 발생하면서 삭제 시 캐시사이즈를 원래대로 늘려줘야하는데 동시성 이슈가 발생하면 캐시 사이즈가 점점 더 줄어들게 됩니다. 각 스레드가 하나씩 지워놓고 카운트를 2 올려주어야하는데 1만 올라가는거죠. 그럼 스레드 수는 그대로인데 캐시사이즈는 점점 줄어들게 되니 더 많은 에러가 발생하게 되는 현상을 경험해본 적 있네요
@ezcd2 жыл бұрын
와 디폴트가 thread-safe 하지 않았었네요~ 이것도 진짜 동시성의 중요성을 잘 보여주는 사례인거 같아요~! 실무에서 경험하신 부분을 공유해주셔서 감사합니다! 👍 다른 분들도 댓글 보시면 더 도움되실 것 같아요 :) 요 사례도 다음에 소개할 기회가 생길 때 잘 사용할게요ㅎㅎ
@뿡뿡-t2l Жыл бұрын
가슴 깊이 이해할수 있었습니다.
@ezcd Жыл бұрын
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 👍👍👍
@조바이든-r6r2 жыл бұрын
영상 하나하나 처음 공부하는데 힘드네요 ㅠ
@ezcd2 жыл бұрын
ㅠㅠㅠ 제가 더 설명을 쉽게 할 수 있게 얼릉 내공을 더 쌓도록 하겠습니다ㅠㅠ 이해하기 힘드신 부분들 댓글로 남겨주시면 도울 수 있는 부분들은 최대한 도울 수 있도록 해볼게요~
@조바이든-r6r2 жыл бұрын
@@ezcd 아닙니다.. 그냥 제가 모자라서인것일뿐.. os는 사실 한기대? 강의 조금 맛보고 말았거든요 근데 웹서버는 http로 간단하게들어가지만 대기업 전공면접이나 게임서버 만들려면 제대로파야겠다 싶어서 공부중인지라.. 터프하지만 참아야겠지요
@ezcd2 жыл бұрын
@@조바이든-r6r 앗 그러셨군요 ㅠㅠ OS가 조금 어렵긴 합니다 ㅠㅠ 그래도 포기하지 마시구 화이팅이셔요~! 응원합니다~!