무료
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결운영체제 공룡책 강의
2강 실습을 위한 개발환경 구축(Windows 10 + WSL 2 + Visual Studio Code)에서 출력오류
2강에서 예시문제를 터미널에 실행하면 .. 강사님과 같은 화면이 출력이 안됩니다. 혹시 어떤게 문제인지 알 수 있을까요?
- 미해결운영체제 공룡책 강의
아래 질문 관련하여 다시 문의드립니다
강사님 친절하신 답변 감사드립니다!다만 질문드린 예제는 4.19번 예제입니다! 제가 제대로 말씀드리지 않았네요...!질문 내용은 동일한데, 혹시 다시 답변 부탁드려도 될까요?이전 질문입니다 다름이 아니라 Thread & Concurrency (Part 2) 에 대해 의문이 있어 질문드립니다. 저희 자료 ch04 threads 기준 30p 예제에 관한 것인데, 여기서 if(pid==0) // child process thread_attr_init pthread_create pthread_join에서 thread가 2개 생성된다고 하셨는데, 이게 왜 2개인지 도무지 이해가 되질 않습니다. 원래 thread가 하나 있어서 2개가 된건가요? 어느 pthread_creat로 하나가 만들어진 것 까지는 이해하겠으나, 두 개째는 언제 만들어진 것인지 도무지 모르겠습니다또 이 부분에서 join이 들어간 이유도 질문드려도 될까요?
- 미해결운영체제 공룡책 강의
Thread & Concurrency (Part 2) 질문드립니다
안녕하세요 주니온님 좋은 강의 다름이 아니라 Thread & Concurrency (Part 2) 에 대해 의문이 있어 질문드립니다. 저희 자료 ch04 threads 기준 30p 예제에 관한 것인데, 여기서 if(pid==0) // child process 에서 thread가 2개 생성된다고 하셨는데, 이게 왜 2개인지 도무지 이해가 되질 않습니다. 원래 thread가 하나 있어서 2개가 된건가요? 어느 pthread_creat로 하나가 만들어진 것 까지는 이해하겠으나, 두 개째는 언제 만들어진 것인지 도무지 모르겠습니다
- 미해결운영체제 공룡책 강의
vmware에 ubuntu 설치관련 질문드립니다
안녕하세요 강사님, 우분투 설정을 하려다 질문이 생겨 글을 남깁니다. 작년에 vmware에 우분투 14버전을 설치했었습니다. 그리고 이번에 강의 해주신대로 vscode와 vmware20.04.4버전도 연동시켰습니다. 그런데 vmware20.04.4 버전은 vmware에서는 연동이 안되는건가요? 서로 각자의 환경에선(vscode, vmware) 잘 돌아가는데 왜 vmware에 20버전을 설치하려고 하면 찾을 수 없는 경로라고 뜨는지 궁금합니다. 그리고 같은 우분투인데도 버전이 다르면 다른 os로 인식을 하는건가요? 디렉토리를 만들어서 확인해본 결과 서로 영향을 주고 받진 않는것 같아서 질문드립니다.
- 미해결운영체제 공룡책 강의
쓰레드 종료 예제 코드 관련 질문드립니다.
안녕하세요! 좋은 강의 너무 잘 듣고 있습니다!! 이번 강의에서 쓰레드의 종료 예제 코드 관련해서 궁금한 점이 있습니다. 영상으로는 22:00 경 나오는 코드입니다. 해당 코드를 제 환경에서 실행해본 결과, 자식 쓰레드의 while문 로그 → 부모 쓰레드의 로그 → 자식 쓰레드의 catch구문 로그 순으로 출력이됩니다. 영상에서는 자식의 catch구문이 먼저 들어온 다음, 부모 쓰레드의 로그가 나오는 것으로 나오는데 이 부분 또한 멀티쓰레드 환경에서 순서를 보장하지 않는 부분일까요?
- 미해결운영체제 공룡책 강의
Fig 6.3 Peterson's solution Dev C++에서 실행 ==> 결과가 가끔 0이 아님
안녕하세요? 초보가 이것 저것 해보는데 Fig 6.3 Peterson's solution 코드를 우분투에서 실행하면 항상 sum=0 인데, DEV C++에서 컴파일, 실행하면 자주 SUM=0이지만, 가끔 다른 양 혹은 음의 정수가 나옵니다. 무슨 문제 일까요?
- 미해결운영체제 공룡책 강의
퀴즈#8의 2번 문제 질문드립니다
안녕하세요 강사님 강의 잘 듣고 있습니다! 퀴즈 #8을 푸는데 2번 문제에서 잘 모르는 부분이 있어서 질문드립니다. 2번의 답은 4번인데 4번은 아니고 3번이 더 맞다는 생각이 들어서요... 일단 4번은 "(D)에서 signal(empty)를 호출했으므로 producer 프로세스가 임계구역에 진입할 수 있을 것이다."인데 이것 가지고는 부족하고 이것에 추가로 producer가 wait(mutex)도 뚫어야 임계구역에 진입할 수 있다고 생각했습니다. 그리고 3번은 그냥 고칠 부분이 없어보이는데 풀이 답변 부탁드려도 될까요? 감사합니다!
- 미해결운영체제 공룡책 강의
강의 교재: 화면 vs pdf 파일
안녕하세요? 제 실수인지도 모르지만 제가 보기에 다운 받는 pdf 파일과 강의 화면 내용이 거의 유사하지만 페이지 번호 등이 조금 다른 것 같습니다. 해당 페이지 찾아 갈 수는 있는데 혹시 가능하시면 최신본 올려 주실 수 있으신지요? 3.3 Operations on Processes Exercise 3.16 (p. 905) 는 35쪽 강의 화면은 12쪽이라고 표시 됩니다
- 해결됨운영체제 공룡책 강의
49:10초 부분에 오타가 있는 것 같은데 맞나요?
안녕하세요 49:10초 부분에 오타가 있는 것 같은데 맞나요? releaseWriteLock()이면 isWriting을 true가 아니라 false로 해주는 게 맞는 것 같아서요!
- 미해결운영체제 공룡책 강의
18분 10초경 평균 웨이팅타임에 대해 질문드립니다!
SJF 스케줄링 평균 대기시간에 대해서 구하고 있는데요, 프린트에서는 7.75로 기재되어 있는데 제가 구한 값과 조금 달라서 질문드립니다 ㅠ 0 + (8-1) + (12-2) + (21-3) = 35 35 / 4 = 8.75 로 계산이 나오는데, 어떤 점이 잘못된건지 알려주실 수 있을까요?
- 미해결운영체제 공룡책 강의
6번 질문있습니다.
정답지에 1번 5.00ms라고 나오는데 제가 계산한 것은 P1의 대기시간 : 0 P2의 대기시간 : 9 - 1 = 8 P3의 대기시간 : 13 - 2 = 11 평균대기시간 : (0 + 8 + 11) / 3 = 6.33ms입니다. 제가 어떤 부분을 틀렸을까요..?
- 미해결운영체제 공룡책 강의
메세지 패싱에 대해 질문이 있습니다.
안녕하세요 교수님! 프로젝트를 하다가 연구 방향에 대해 궁금한 점이 있어서 질문드립니다. 공유 메모리(Shared-memory)가 아니라 메세지 패싱 방식을 이용해서 다자간(생산자, 소비자 각 3명 초과 > 3) 생산자 소비자 문제에 대한 해결 방법을 코딩으로 구현해야 하는 데요. 세마포어를 이용하여 자원 관리를 하고, 타임스탬프를 통해, 큐에 들어온 지 오래된 것부터 소비해야합니다. 이런 경우, 어떻게 접근해야 할까요?
- 미해결운영체제 공룡책 강의
퀴즈#02 6번 질문
교수님 안녕하세요. 운영체제 강의 잘 듣고있습니다. 다름이 아니라 퀴즈2번을 풀고있는데 6번에서 LINE X에 대한 실행 순서로 옳은 것인데 LINE X가 어디인지 잘 안보입니다. 혹시 확인한 번 부탁드려도 될까요?
- 미해결운영체제 공룡책 강의
좀비 프로세스
좀비 프로세스 설명이 피피티와 설명이 조금 다른 것 같은데결국 같은 의미인가요? 피피티에서는 자식은 종료되었지만 부모가 wait하지 않았다는 의미 같아서요
- 미해결운영체제 공룡책 강의
Thrashing 부분에서 질문이 있습니다
교수님께서 페이지의 개수가 100개이고, 스레드의 개수가 100개이면 맨날 페이지 폴트가 일어난다고 설명해주셨는데, 이 말씀이 이해가 안갑니다. 페이지 개수와 스레드 개수가 동일하다면 페이지 폴트가 안일어나는게 아닌가요? 항상 좋은 강의 해주셔서 감사합니다!
- 미해결운영체제 공룡책 강의
동일한 일 처리시 동일한 logical 주소를 가지는건가요?!
안녕하세요 강의 정말 잘 듣고 있습니다! 강의를 듣다가 한가지 궁금한 점이 생겼는데요 동일한 일을 처리하는 프로그램에서 자식 프로세스를 만든다면 동일한 logical 주소를 가지게 되는건가요? 같은 메모리 물리(Physical) 주소를 사용한다고는 적혀 있는데,별도의 pcb를 만들기만하고 논리주소도 같은건지 아니면 다른건지 모르겠네요...
- 미해결운영체제 공룡책 강의
교수님! 04 퀴즈 8번에 대하여 질문 있습니다
안녕하세요! 먼저 좋은 컨텐츠를 무료로 제공해주심에 감사합니다! 자바에서 thread.start()메서드를 호출한 후 join메서드를 호출하기 전까지는 main thread와 새로 만든 runner thread가 동시에 돌아가 C와 A중 어느 것이 먼저 출력될지는 알 수 없는게 아닌가 싶어서 질문드립니다.
- 미해결운영체제 공룡책 강의
8강의 exercise 4.17의 풀이가 잘 이해가 되지 않습니다 ㅠㅠ
8강의 exercise 4.17의 풀이가 잘 이해가 되지 않습니다. fork()에 대해서 제 이해가 부족한 것 같은데요, 아래에 제가 이해한 부분을 정리해 보았습니다. 먼저 첫 fork()에서 child process (p1)을 생성합니다. 이때는 프로세스가 p0,p1 이렇게 두개가 있겠지요. fork()는 부모 프로세스에서는 방금 만든 자식 프로세스의 pid값을 리턴하고, 자식 프로세스에서는 0을 리턴합니다. 그래서 먼저 p0프로세스는 if문을 실행하지 않고 제일 아래 fork()를 통해 또 다른 자식 프로세스 p3을 만들고 종료합니다. 이제 아까 만든 p1 프로세스를 살펴보면, pid값이 0이어서 if문 안으로 들어갑니다. 들어가서 fork()를 하게 되는데요, 이때 새로운 프로세스 p2를 만듭니다. 그리고 p1 프로세스는 thread를 만들고 if문을 나와서 fork()를 하여 새 자식 프로세스 p4를 만든 후 종료합니다. 이제, 제가 헷갈리는 부분인 p2프로세스에 대해서 이야기해 보겠습니다. p1프로세스에 의해서 만들어진 p2 프로세스는 if문 안의 fork()에 의해서 만들어졌습니다. 그리고 바로 아래 코드인 thread_create()를 통해서 쓰레드를 하나 더 만들게 되는데요. 이때의 p2 프로세스의 구체적 상황이 궁금합니다. 1. 자식 프로세스를 fork()를 통해서 만들때, stack heap data text 등의 프로세스를 구성하고 있는 전 영역이 그대로 복사가 되는 것으로 알고 있습니다. 그러면 p2 프로세스는 부모인 p1프로세스가 가진 pid=0이란 변수를 가지고 있는 것인가요? 2. p2 프로세스가 실행될때, 코드 내 어느 부분부터 실행이 되는지 구체적으로 궁금합니다. 저는 막연히 fork() 이후 코드부터 실행이 되겠구나 이해를 하고 있었는데, 그래서 thread_create()를 하는 부분은 이해했습니다. 그런데, 해당 코드는 원래 if문으로 둘러쌓여져 있기에, p2가 if 문을 인지하고 있는 것인지, 그래서 if문을 빠져나와서 (pid값이 0이라서) fork()를 또 할 수 있는 것인지 궁금합니다. 이 부분이 사실 이해가 되지 않습니다... if문이랑은 별개로 p2 내의 코드는 thread_create() 이후에 곧바로 fork()로 이어져 있는 것인지.. 헷갈리네요 ㅠㅠ
- 미해결운영체제 공룡책 강의
Deadlock detection에 대해서 질문드립니다.
질문1 Deadlock detection을 할 때 Allocation이 0인 경우 Finish 초기화를 true로 해준다고 하셨는데요. 이것은 Dead lock avoidance 알고리즘에서도 적용할 수 있지 않나요? 자원을 차지하지 않은 스레드의 요청은 최종적으로 무조건 들어준다고 생각하면 되니까, Allocation이 0이 아닌 스레드들의 safe sequence만 찾아줘도 될 것 같은데요. 질문2 같은 Banker's 알고리즘을 사용해서 dead lock detection 관점에서 Finish에 false 상태가 있으면 dead lock으로 보는 것을 보면, 반대로 dead lock avoidance 관점에서는 모든 finish가 true가 아닌 상태가 당장에는 unsafe 상태지만 필연적으로 dead-lock 상태가 되는 과정으로 보면 되겠네요? Banker's 알고리즘 자체가 모든 경우의 수를 뒤져서 dead lock에 도달하지 않는 경우를 찾는 것인데, 그것에 만족하는 경우가 없다는 뜻이니까요. 질문3 dead lock detection 시기를 1년에 한 번 dead lock이 발생하는 프로그램을 예로 드셔서 6개월에 한 번, 1달에 한 번, 하루에 한 번 등을 예시로 드셨는데요. 일단 detection 시기가 길어지는 것과 detection 되는 cycles의 수가 많아지는 것이 무슨 관계인지 잘 모르겠습니다. dead lock에 의한 사이클 수는 시스템이 멈추는 그 순간 고정되는 것이 아닌가요? 또 예시로 드신 detection 텀이 상당히 긴대, dead lock이 걸리면 프로그램이 멈춘다는 거잖아요? 비즈니스 어플리케이션을 예로 들면 아침에 dead lock 걸렸는데 저녁에 detection 해서 Recovery하면 회사에서 난리가 날 것 같은데요. detection 텀이 정말로 예시로 들어주신 것처럼 하루, 1 달, 6개월 이렇게 되나요?
- 미해결운영체제 공룡책 강의
11분 36초 cycle 형성시 wait하면 cycle이 해제된다는 것이 이해가 안 갑니다.
T1이 R2에 요청을 했을때 cycle이 형성되어 wait 시킨다고 하더라도 T2가 R2를 반환하기 위해서는 T2가 R1에 요청한 자원이 T2로 가야합니다. 하지만 R1은 현재 T1에 있는 상태이고 T1은 R2에 대한 요청이 거절되었으므로 waiting 상태이고, 결론적으로는 dead lock 상태에 빠집니다. T1이 R1을 T2에게 주기 위해서는 T1도 작업을 완료해야 하기 때문입니다. 그래서 공유 자원 타입마다 1개가 존재할 때, cycle이 생성되는 요청을 허가하지 않더라도, 시간이 지나더라도 dead lock 상태가 해결되지 않습니다. 해당 요청을 허가했을 때 unsafe 상태에 빠지는 것이 아니라, cycle을 detect하는 순간 이미 deadlock 상태에 있는 것 같은데요. 제가 어디를 잘못 이해했는지 모르겠습니다.