Conversation
| A) 둘의 가장 큰 차이로는 Stack 영역을 공유하는 지입니다. | ||
| 프로세스는 Heap, Stack, Data, Code 영역을 공유하지만 | ||
| Thread같은 경우는 하나의 작업을 처리하는 단위로 하나의 프로세스 내에서 Code/Data/Heap 영역이 생성이 됩니다. |
There was a problem hiding this comment.
스타일 차이 일 수 있으나,
- 프로세스에 대한 설명
- 스레드에 대한 설명
- 그래서 뭐가 다른데?
로 가는 방향이 더 좋을 것 같습니다!
| - ### Q) 그렇다면 Thread의 문제점은 무엇이 있을까요? | ||
|
|
||
| A) 데이터의 일관성 문제가 생길 수 있습니다. | ||
| 어떤 프로세스가 작업을 처리할 때, 여러 스레드가 작업을 처리하게 되는데, | ||
| 그때 공유되는 자원이 있기 때문에 데이터의 일관성문제가 생길 수 있습니다. |
There was a problem hiding this comment.
면접자의 의도대로 답을 진행해야합니다.
첫번째 질문이 스레드와 프로세스의 차이를 물어봤으니, 프로세스는 거기에서 무슨 문제가 있는지 파악해야합니다.
스레드의 문제가 아닌데, 프로세스의 문제를 설명하는 것이 더 좋아보입니다.
There was a problem hiding this comment.
따라서 여기에서는 Context Switch 비용이 크다.가 더 적절한 답변이 될 것 같습니다.
|
|
||
| A) 한 프로세스에서 다른 프로세스로 넘어갈때, 이 전 프로세스에 대한 정보를 저장하고, 다음 프로세스에 대한 내용을 불러오는 과정에서 생기는 개념이다. | ||
|
|
||
| 컨텍스트 스위칭은 작업을 할 때 불필요한 비용이 생길 수 있어서 최소한의 비용을 산정해야한다. |
There was a problem hiding this comment.
이거 답변이 조금 모호한 것 같습니다.
최소한의 비용을 산정해야한다.
어떤 의미로 답변하신건가요?
| - ### Q) 프로세스의 이동간에 정보를 저장한다고 하셨는데 정보를 어디에 저장할까요? | ||
|
|
||
| A) PCB에 저장하며 PCB에는 프로세스의 전반적인 메타데이터, | ||
|
|
||
| 즉 프로세스의 상태나 프로그램 카운터 주소, 프로세스 스케줄링에 대한 정보들이 포함됩니다. |
There was a problem hiding this comment.
근데 저는 Process Control Block이라고 답변할 것 같아요. 이게 면접이다보니,
내가 해당 내용에 잘 알고 있다라는 인상을 주기 위해서요!
| - ### Q) 동시성과 병렬성의 차이에 대해서 설명해주세요 | ||
|
|
||
| A) 잘 모르겠습니다 | ||
|
|
||
| #### 정균 | ||
| > 동시성은 하나의 자원을 사용해서 여러 작업을 번갈아가며 처리하는것이고 | ||
| 병렬성은 여러개의 자원을 사용해서 여러 작업을 동시에 처리하는 능력입니다! | ||
|
|
||
| 제가 이 파트에서 질문을 드린 이유는 동시성을 구현하기 위해서 잦은 ContextSwitching이 발생해서 여기서 질문을 드려봤습니다!! | ||
|
|
||
| 최근에 친구가 면접에서 이런 질문을 받았다고 해서 알아두시면 좋을 것 같습니다! | ||
|
|
||
| <br> |
There was a problem hiding this comment.
요새 동시성, 병렬성이 면접 필수 문항입니다!
어떤 곳에서는 동시성인지, 어떤 곳에서는 병렬성이 사용되는지 비교하시면서 공부하시면 더 좋을 것 같습니다.
| - ### Q) 멀티스레드 프로그래밍에 대해서 설명해주세요 | ||
|
|
||
| A) 멀티스레드 프로그래밍은 여러개의 스레드가 작업을 동시에 처리하는 기법입니다. | ||
|
|
||
| 멀티프로세스는 코드, 데이터, 힙 영역을 공유하기 때문에 IPC 같은 기법 없이 멀티프로세스보다 빠르게 작업을 처리할 수 있습니다. |
| - ### Q) 프로세스 동기화에 대해서 설명해주세요 | ||
|
|
||
| A) 잘 모르겠습니다. | ||
|
|
||
|
|
||
| - ### Q) Race Condition 에 대해서 설명해주세요 | ||
|
|
||
| A) 여러 개의 프로세스들이 하나의 자원에 동시에 접근을 할 때 발생하는 것이 Race Condition 입니다. | ||
|
|
||
| Race Condition의 발생 조건으로는 점유와 대기, 비선점 등이 있습니다. | ||
|
|
||
|
|
||
| #### 정균 | ||
| > 정의는 맞는데 발생 조건에서 말씀해주신 점유와 대기, 비선점 등은 Deadlock의 발생 조건 입니다!! 개념이 헷갈려서 그런 것 같아요!<br><br> | ||
| 잘 짚고 넘어갈 수 있도록 합시당 | ||
|
|
||
| <br> |
There was a problem hiding this comment.
해당 부분은 그냥 넘어가면 안됩니다..!
이번 기회에 확실히 정리하고 가면 좋을 것 같습니다.
|
|
||
| - ### Q) Deadlock과 Starvation에 대해서 설명해주세요 | ||
|
|
||
| A) Deadlock은 여러개의 프로세스가 본인이 점유하고 있는 내놓지 않고 다른 프로세스의 자원을 얻으려고 시도를 할 때, 순환을 이루면서 영원히 서로의 자원을 요구하는 상황이 되면서 다음 상태로 진행하지 못하는 상태입니다. |
There was a problem hiding this comment.
전반적으로 말씀 잘해주시긴 했지만 순환이라는 단어가 모호합니다
예를들어
P1 -> R1 필요, R2 점유
P2 -> R2 필요, R1 점유
도 데드락이니까요
No description provided.