월 33,000원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨기출로 대비하는 개발자 전공면접 [CS 완전정복]
이중 해싱 관련 질문 드립니다
- 값을 삽입시에 첫번째 해싱으로 충돌이 발생할경우 다시 한번더 해싱을 통해 빈공간에 값을 저장한다는 것은 이해됩니다. 하지만 값을 찾는 경우에는 정확히 어떤 원리로 1차 해싱만으로 저장한 값의 인덱스를 찾을 수 있는 키인지, 2차 해싱을 해야 저장한 값의 인덱스를 찾을 수 있는 키인지 구별하는 방법이 이해가 되지 않아 질문드리게 되었습니다. 예시로 각각 키와 값의 쌍으로 (1, "one")과 (7, "seven")이라는 쌍들을 해시테이블에 저장하는데, 해시 충돌이 발생하여 7은 재해싱을 하여 저장했다는 상황에서 재해싱을 통해 값을 저장한 키값 7을 통해 값을 검색하는경우, 해시테이블은 어떻게 키값 7이 재해싱을 통해 값을 저장한 키라는 것을 알아내고 이중해싱을하여 "seven"이 저장된 index값을 찾아내는 것인지 궁금합니다.
- 미해결기출로 대비하는 개발자 전공면접 [CS 완전정복]
resize 관련 질문이 있습니다.
Circular Queue도 마찬가지로 크기가 꽉 차면 리사이즈가 일어난다고 하셨는데 더블링 리사이즈가 일어났을 때 배열이 두배로 커지고 다시 앞부분이 1부터 들어가게 되는 건가요? 아니면 8분19초 상황에서 11 12 13 4 5 6 7 8 9 10 14 15 16 이렇게 들어가는 건가요?
- 미해결기출로 대비하는 개발자 전공면접 [CS 완전정복]
Semaphore 질문드립니다
Semaphore 에서는 변수 S개 만큼의 프로세스가 동시에 임계영역에 들어갈 수 있다고 하셨는데, 만약 S=3개의 프로세스가 동시에 임계영역에 동시에 들어가서 counter++ 를 한다면원했던 counter = 3이 안되고 counter=1 이 되는 동기화 문제가 발생할 수 있는게 맞나요?? Semaphore 는 동시에 여러 프로세스가 임계영역에 들어가게 해주는데 동기화가 어떤 방식으로 해결되는지 이해가 안갑니다 ㅠㅠ
- 해결됨기출로 대비하는 개발자 전공면접 [CS 완전정복]
멀티프로세스 질문
멀티 프로세스가 2개 이상의 프로세스가 동시에 실행되는 것을 의미한다고 하시고 예시로 롤큐, 유튜브 음악을 동시에 하는 것이라고 하셨는데 이것은 멀티 태스킹이 아닌가해서 여쭤봅니다. 멀티프로세스는 하나의 프로세스를 여러 프로세스로 나눠서 작업하는 것으로 기억하는데 무엇이 맞는지 궁금합니다. 예시로 구글 크롬의 여러 탭같은것요!
- 미해결기출로 대비하는 개발자 전공면접 [CS 완전정복]
PCB PC register?
안녕하세요 질문이 있습니다. PCB는 process state, process number .. 등 프로세스에 대해 필요한 정보를 얻을 수 있는 자료구조라고 하셨는데 PC register과 어떤차이점이 있는지 모르겠습니다. PCB는 주로 커널에 저장되어있고 PC register는 스레드 마다 있는것이 맞나요?
- 해결됨기출로 대비하는 개발자 전공면접 [CS 완전정복]
Thread의 프로세스 메모리 사용 부분 질문
안녕하세요. 이번 강의에서 multi thread 환경에서 thread가 사용하는 process 의 메모리 영역에 대한 그림에 질문드립니다. 저번강의에서 thread는 process의 stack 영역을 제외하고 heap, data, code 영역은 공유한다고 들었는데 이번 강의 그림에는 code1,code2,code3이 분리가 되어있습니다. 프로세스 단위로는 code1,2,3 구분이 무의미하고 multi thread 단위 입장에서는 각각 다른 code를 수행할 수도 있고 같은 code를 수행할 수도 있지만 독립적인 단위라는 개념상 code를 분리하신거라고 이해하면 될까요?
- 해결됨기출로 대비하는 개발자 전공면접 [CS 완전정복]
Context switch에 대해 질문드립니다.
안녕하세요. 강의를 보다가 Context switch에 대해 의문이 들어 질문드립니다. 멀티 프로세스를 설명하는 강의에서 'Context switch가 한 프로세스에서 다른 프로세스로 제어권을 넘겨주는 것'이라고 설명해주셨는데요. 이후 멀티 쓰레드 강의에서 쓰레드 간에 CPU 할당이 전환될 때도 똑같이 Context switch가 일어난다고 말씀해주셨습니다. - 그러면 Context switch의 개념이 '프로세스 간의 전환'과 '쓰레드 간의 전환' 두 개의 개념이 있는걸로 보면 되는걸까요? - 만약 그렇다면, 프로세스 간에 Context switch가 일어날 때는 PCB에 기존 프로세스 정보를 저장하고, 이후 프로세스 정보를 불러오는 작업이 일어나는데, 쓰레드 전환에서는 하나의 프로세스 내에서 일어나기 때문에 PCB에 저장, 조회 하는 작업이 생략되는건지 궁금합니다. - 쓰레드가 프로세스 내에 개별적으로 Stack 영역을 할당 받고 이들 간에 교환된다고 하셨는데, 이들 사이에서는 어떤 방법으로 Context switch가 동작하는지 궁금합니다.(PCB와 동일하게 프로세스 마다 쓰레드 정보를 보관하는 곳이 있나요?)
- 해결됨기출로 대비하는 개발자 전공면접 [CS 완전정복]
시간복잡도 질문
안녕하세요. Stack 2개를 활용하여 Queue를 만드는 시간복잡도 부분에서 질문이 있습니다. 강의에서는 dequeue의 경우에만 outstack이 비어있는 경우와 데이터가 있는 경우를 나누어 각각 O(n), O(1)의 시간복잡도를 말씀해주셨는데요. dequeue가 일어나고, outstack에 데이터가 남아있는 상태에서 enqueue가 일어날 경우에는 outstack에 남아있는 데이터를 instack으로 다시 옮기는 작업 후에 push를 해줘야하기 때문에 똑같이 enqueue의 경우에도 2가지 경우가 있고, amortized O(1)로 볼 수 있지 않은지에 대한 의문이들어 질문드립니다.