교수님 질문있습니다!
283
작성한 질문수 18
안녕하세요 교수님 양질의 강의 잘 듣고 있습니다. 감사합니다!
멀티스레딩에 대해 궁금한 점이 있어 질문남깁니다.
1. 멀티프로세싱 대비 멀티스레딩의 장점 중 하나가, context switching의 비용이 적다는 것이라고 알고 있습니다. 그런데 context switching이란 명령어를 실행하기 위한 pc, stack pointer 등을 바꾸는 과정으로 알고 있는데, 스레드의 경우에도 pc, stack pointer는 각각 다르지 않습니까?? 그럼 어차피 스레드도 pc, stack pointer를 바꿀텐데 왜 context switching의 비용이 싼 건지 궁금합니다!
2. 서버는 멀티프로세스를 쓰는게 좋은지 멀티스레딩을 쓰는게 좋은지도 궁금합니다!
다시 한번 좋은 강의 감사드립니다.
답변 1
1
안녕하세요?
1.
pc, stack pointer 등의 TCB 블록은 다른 정보들을 담고 있는 PCB보다 훨씬 크기가 작지요?
그래서 context switching 비용이 훨씬 적게 들어간다고 이해하시면 수월하실 것 같습니다.
또한, Code 블럭을 공유하기 때문에, 같은 코드 블럭이 여러 개 중복될 필요도 없지요.
2.
서버냐, 클라이언트냐와 무관하게, 어떤 어플리케이션이냐에 따라 다릅니다.
대표적으로 Chrome 브라우저는 예전에 IE가 탭별로 쓰레드를 생성하는 것을
탭별로 Process를 생성하는 것으로 바꿔서 엄청난 속도 향상을 이끌어 냈습니다.
개념적으로는 각 탭별로 코드를 공유하는 것이 유리할 것 같은데, 역발상이 통한 것이죠.
서버 문제도 마찬가지로, 구현하고자 하는 서비스의 성격별로 멀티프로세스냐, 멀티쓰레드냐를 결정해야 합니다.
어떤 하드웨어 서버를 이용하느냐, 어떤 DBMS를 이용하느냐, 혹은,
어떤 로드 밸런서를 이용하느냐, 어떤 클라우드 서비스를 이용하느냐, 등에 따라서
천차만별이기 때문에, 여기에는 정답이 있다기 보다, 수많은 경험과 노하우가 필요한 것이죠.
퀴즈 7번의 답에 대한 질문입니다.
0
546
1
이해하고 있는것이 맞는건지 궁금합니다 ㅠㅠ
0
809
1
타우시간
0
537
1
퀴즈1 1번 질문합니다 !
1
597
1
Page는 Text Data이외에 다른 메모리도 포함하나요?
1
370
0
IPC shared memory 코드
0
511
1
[간단한 질문 ]banker's algorithm 을 linux 에서 실제로 프로세스 관리할때 쓰이나요?
0
397
0
user mode i/o 관련 질문
0
276
1
shared memory 관련해서 질문 드립니다.
0
512
1
교수님 fork()함수에 대해 질문이 있습니다.
0
882
2
process 와 thread
0
363
1
교수님 Docker 로 실습해도 괜찮을까요?
1
859
1
Mac OS에서 Docker 이용하여 Ubuntu 20.04 환경설정 방법 공유
22
3318
2
moniter, condition variable, synchronized에 대해서 궁금한점이 있습니다..
0
661
1
왜 무료인지 이해를 못 하겠네요..
3
423
1
7.1 Classic Problems of Synchronization 질문이 있습니다
0
296
1
공룡책 8판과 10판중
0
591
1
6.3 peterson's solution 질문이 있습니다
0
220
1
08-01 연습문제 8번 질문있습니다!
0
277
0
06. 프로세스간 통신의 실제: Chapter 3. Processes (Part 4) 에 그림 3.16 3.17 실습 오류
0
262
1
안녕하세요 교수님 실습 해봤는데 LINE J가 실행이 됩니다
1
351
1
2강 실습을 위한 개발환경 구축(Windows 10 + WSL 2 + Visual Studio Code)에서 출력오류
0
340
1
아래 질문 관련하여 다시 문의드립니다
0
195
1
Thread & Concurrency (Part 2) 질문드립니다
0
182
1





