무료
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결운영체제 공룡책 강의
Page는 Text Data이외에 다른 메모리도 포함하나요?
page에는 프로그램 코드뿐만 아니라 프로세스 실행중에 발생되는 동적 데이터도 포함되어 있나요?동적 데이터가 포함되어 있다면 page out시 이들은 어떻게 유지되나요?동적 데이터가 포함되지 않았다면 copy on write가 발생하는 이유는 무엇인가요?(프로그램 코드는 항상 완전히 동일하다고 생각합니다.) copy on write같은 상황이 발생하는 이유는 page가 동적 데이터를 포함하기 때문이라고 생각합니다. 프로그램 코드만 있다면 별도의 페이지를 카피할 필요가 없을 거같아서요.하지만 이 경우는 page out시에 page에 포함된 동적 데이터도 날아가므로 동적 데이터를 유지할 다른 방법이 또 필요할 것 같습니다. 만약 별도의 메모리 공간을 사용한다면 애초에 page에 동적 데이터를 포함하는 것이 무의미해질 것 같아서 혼란스럽습니다.
- 미해결운영체제 공룡책 강의
IPC shared memory 코드
ch03.Processes 2번 강의자료 22p producer 코드에서#include <unistd.h> 가 없으면 ftruncate 함수 인식 오류가 발생합니다. (implicit declaration)같은 강의자료 25p consumer 코드에서 mmap 옵션에 PROT_WRITE 옵션이 있으면 shm_open의 O_RDONLY 옵션과 충돌하여 segmentation fault가 발생합니다. PROT_WRITE 제거해주세요.오류 발생하는 분들 있을까봐 글 남깁니다.항상 좋은 강의 감사드립니다!!
- 미해결운영체제 공룡책 강의
[간단한 질문 ]banker's algorithm 을 linux 에서 실제로 프로세스 관리할때 쓰이나요?
안녕하세요 .공부중에 의아한 점이 있어서 질문 드립니다.banker's algorithm 내용을 보니, 자원에 대한 용량 검사가 프로세스와 자원단위로 실행되는건 너무 부하가 많이 걸리거나 현실적으로 힘든일 같아서요. 해당 알고리즘을 실제로 os 에서 사용하는지에 대한 여부를 검색해보았으나, 무언가 official 한 문서에선 내용을 찾을 수 없었습니다. 궁금한 점은,banker's algorithm 은 linux 의 프로세스 혹은 쓰레드 관리에 사용되는 알고리즘 인가요?만약 아니라면 linux 에서 dead lock 을 방지하거나 회복하는 실제 기술에 대해서 알려주실 수 있으신가요 ?
- 미해결운영체제 공룡책 강의
user mode i/o 관련 질문
안녕하세요. 강의 감사히 잘 듣고 있습니다. 강의 중에 등장한 user mode, kernel mode 의 차이점에 대해 따로 찾아보던 중 이해가 안 되는 부분이 있어 질문을 남깁니다. kernel 모드는 OS의 핵심적인 기능들을 수행하는 모드로서 모든 컴퓨팅 자원들에 대한 접근 권한을 갖습니다. 하지만 user mode 는 제한된 권한을 가지면서, i/o 등의 작업이 필요할 경우 system call 을 통해 kernel에 해당 작업을 요청하는 식으로 동작한다는 것을 알게 되었습니다. 이런 구조를 갖는 이유는, user mode에서 수행할 user application에서 (외부의 공격에 의해 심어진) "디스크의 내용을 모두 지워라" 와 같은 악의적인 내용을 수행하려할 경우 이러한 위험에서 리소스들을 보호하기 위함이라는 내용을 보았습니다. 제 의문은 여기서 발생합니다. user mode 는 어쨌든 i/o 가 필요할 때 kernel 에 해당 작업을 요청할텐데.. kernel은 요청받은 i/o 작업이 필요에 의한 작업인지? 외부 공격 등에 의한 악의적인 동작인지? 를 어떤 식으로 구분하여 리소스를 안전하게 보호할 수 있는 것인가요? 많은 자료를 찾아보았으나 해답을 얻지 못해 실례를 무릅쓰고 질문 드립니다. 답변해주시면 공부하는데 큰 도움이 될 것입니다. 읽어주셔서 감사합니다.
- 해결됨운영체제 공룡책 강의
shared memory 관련해서 질문 드립니다.
안녕하세요 교수님, 챕터 3에서 POSIX shared memory는 메모리 맵 파일을 이용한 방법이라고 하셨는데, 그 메모리 파일이 파일 시스템 상에 존재해야 하는 이유가 무엇인가요? 그냥 RAM에 바로 만들어서 쓸 수는 없는건가요? 그리고 퀴즈 #3의 2번에서 "3) shared memory는 memory-mapped file로만 만들 수 있다"가 오답인 걸로 나와있는데 그렇다면 shm_open + mmap이 아닌 다른 방법으로도 만들 수 있는 건가요? 감사합니다.
- 미해결운영체제 공룡책 강의
교수님 fork()함수에 대해 질문이 있습니다.
fork() 함수를 호출하면 부모 process의 주소공간을 그대로 복사한다고 했는데, 자식 프로세스에서 pid = fork(); 명령을 수행하는것인지, 아니면 그 다음줄 부터 수행하는것인지 해깔립니다. 만약 자식프로세스가 pid = fork()를 수행하면 자식 프로세스가 또 자식프로세스를 만들어서 프로세스가 무한으로 증식되지 않을까 하는 걱정때문에 다음줄부터 수행하는것이 아닌가 생각됩니다. 그렇다면 자식 프로세스의 pid변수가 0을 같는 이유는 초기화가 안되어서 0이 되는것이라고 추측할수 있을텐데, 교수님이 중간에 자식프로세스는 pid= fork() 명령은 0을 리턴받는다고 말씀하셔서 해깔립니다.
- 미해결운영체제 공룡책 강의
process 와 thread
좋은강의 잘듣고 있습니다. 프로그램 실행 시 여러개의 process를 두는 것보다 한 개의 process 내부에 여러개의 thread를 두는 것이 좋다고 하셨는데요. 여러개의 process를 두면서 얻는 장점은 없을까요?
- 미해결운영체제 공룡책 강의
교수님 Docker 로 실습해도 괜찮을까요?
Mac OS 에서 실습하기 위해 Docker 로 환경설정을 했습니다. Docker로 실습 진행 가능할까요?
- 미해결운영체제 공룡책 강의
Mac OS에서 Docker 이용하여 Ubuntu 20.04 환경설정 방법 공유
1. 도커를 이용하여 Ubuntu 설치 // 도커는 설치되었다고 가정함 // ubuntu 이미지 다운로드 및 컨테이너 실행 $ docker pull ubuntu:20.04 $ docker run -it --name myUbuntu ubuntu:20.04 // 도커 컨테이너 내로 들어옴 $ apt-get update $ apt-get upgrade -y // 교수님 업글 안하긴 하심 $ apt-get install build-essential gdb 2. 편한 개발을 위해 VS Code에서 Container에 연결함 - VS Code 에서 Remote - Container 플러그인 설치 - 설치 후 좌측 하단에 >< 아이콘의 초록색 버튼 클릭 - 메뉴 클릭 Attach to Running Container… 3. 테스트 Vs Code에서 텍스트 파일 생성하고 컨테이너 내에서 확인해보면 파일 생성되어 있음
- 미해결운영체제 공룡책 강의
moniter, condition variable, synchronized에 대해서 궁금한점이 있습니다..
안녕하세요 교수님 좋은 강의 만들어주셔서 감사합니다. 자바 모니터 관련해서 궁금한게 있어 찾아보다가 이해가 잘안되어서 질문을 올려봅니다..자바에서 모든 객체는 모니터를 하나씩 가지고, 객체의 맴버변수에 스레드간 경합 없이 접근하기 위해서 synchronized 키워드를 사용해서 간접적으로 모니터를 사용하는것으로 이해했습니다. synchronized 를 매서드를 통해서 사용하는 경우 synchronized 매서드 안에서 임계구역에 접근 전에 위해 monitor에 있는 acquire을 호출해주고, 임계구역 연산 이후 release를 해주는것으로 알고있습니다. 이때 acquire안에서는 “조건변수(conditional variable)“의 wait을 호출해서 현재 임계구역에 있는 스레드의 작업이 끝날 때 까지 기다리고, release안에서는 “조건변수“의 signal을 호출해서 임계구역내에 작업을 끝마치고 대기큐에 있는 스레드를 깨워주는 것으로 이해했습니다. 여기서 질문이 있는데 조건변수(conditional variable)는 이 모니터가 속한 객체의 멤버변수 개수만큼 생기는걸까요? 아니면 synchronized 키워드의 개수만큼 조건변수가 생기는걸까요? (아니라면 멤버변수가 여러개면 각각 다르게 스레드의 대기큐를 만들어줘야 할것같은데 어떤식으로 처리되는지 궁금합니다) 공룡책 개정판 10의 307페이지에서 모니터안에 x, y 조건과 연관된 큐가 각각 부여되는거같은데, 여기서 x와 y는 어떤기준으로 만들어지는지 궁금합니다.
- 미해결운영체제 공룡책 강의
왜 무료인지 이해를 못 하겠네요..
어지간한 유료 강의보다 훌륭합니다..
- 미해결운영체제 공룡책 강의
7.1 Classic Problems of Synchronization 질문이 있습니다
안녕하세요 교수님 좋은 강의 언제나 감사드립니다 7단원의 동시성 제어의 고전적 문제들의 강의 예제에 대해 질문이 있습니다.PThread solution to the Bounded Buffer Problem의 35:25초에서 질문이 있는데, 해당 버퍼가 1인 경우인 해당 예제에서는 consumer가 연속으로 2회 실행이 되고 있습니다.하지만 설명을 해주실때에는 '적어도 동기화 문제는 해결 해준다'고 말씀해주셨는데 consumer가 2회 연속으로 실행 되는 것은 동기화의 문제는 아닌건가요?저는 full과 empty가 동기화가 제대로 되지 않은 경우로 이해가 됩니다 혹시 제 이해가 잘못된건지, 혹은 코드의 어느 부분을 수정하면 되는 것인지 궁금합니다
- 미해결운영체제 공룡책 강의
공룡책 8판과 10판중
10판과 8판 엮은분이 다르던데, 어떤책이 더 읽기 좋을까요???
- 미해결운영체제 공룡책 강의
6.3 peterson's solution 질문이 있습니다
안녕하세요 교수님 좋은 강의 언제나 감사드립니다 다름이 아니라 피터슨 솔루션 코드에서 while(true) { flag[i] = true; turn = j; //다음 순서로 j 지정 while (flag[i] && turn == j ) // j가 실행중이고 자기 차례라면 종료까지 대기 } 이렇게 설명을 해주셨는데, 이해가 잘 되지 않습니다! 다음 순서로 j를 지정해준 것이 while의 조건에 들어가는 것으로 이해가 되는데... 설명을 부탁드려도 될까요?
- 미해결운영체제 공룡책 강의
08-01 연습문제 8번 질문있습니다!
문제 답은 1번 'B C A A A D'라고 되어있는데, 제가 코드를 그대로 돌려보니 3번으로 나와서요. 답안 오류인걸까요? thread.start()가 실행되면서 run()함수가 돌아서 A A A 를 출력 후에 다시 돌아와 C를 출력해야하는게 아닌가요?
- 미해결운영체제 공룡책 강의
06. 프로세스간 통신의 실제: Chapter 3. Processes (Part 4) 에 그림 3.16 3.17 실습 오류
강사님 그림 3.16과 3.17 실습 중 이렇게 오류가 뜨는데 어떤게 문제 일까요?
- 해결됨운영체제 공룡책 강의
안녕하세요 교수님 실습 해봤는데 LINE J가 실행이 됩니다
안녕하세요, 실습 예제 함께 해봤는데 교수님과 다른 결과가 나오는데 혹시 어떻게 이해해야 할까요? 현재 환경은 mac에서 도커를 사용하여 linux 환경에서 c 프로그래밍 하고 있는 상황입니다.
- 미해결운영체제 공룡책 강의
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로 하나가 만들어진 것 까지는 이해하겠으나, 두 개째는 언제 만들어진 것인지 도무지 모르겠습니다