묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
시스템 콜이 없다면 커널모드는 어떻게 들어갈수있나요??
안녕하세요 강사님 강의를 듣다가 궁금해졌습니다 시스템콜로 인해 OS별로 신경쓰지않고 동일한 코드 한줄로 코딩할수있게 되며, 없을경우 OS별로 직접 따로 정의해주어야한다고 이해했습니다 근데 시스템콜로인해 커널모드로 진입하는걸로 알고있는데 시스템콜이 없을경우 커널모드로 진입할수없게되면 커널모드의 기능은 사용하지못하는것 아닌가요??
-
해결됨기출로 대비하는 개발자 전공면접 [CS 완전정복]
안녕하세요 강사님
강의 노션 공유 부탁드립니다
-
해결됨운영체제 공룡책 강의
안녕하세요 교수님 실습 해봤는데 LINE J가 실행이 됩니다
안녕하세요, 실습 예제 함께 해봤는데 교수님과 다른 결과가 나오는데 혹시 어떻게 이해해야 할까요? 현재 환경은 mac에서 도커를 사용하여 linux 환경에서 c 프로그래밍 하고 있는 상황입니다.
-
미해결기출로 대비하는 개발자 전공면접 [CS 완전정복]
https의 경우 질문드립니다!
안녕하세요 강사님!! https의 경우 궁금한 점이 있어 질문드립니다! 7계층으로 생각했을 때 TLS 는 5계층, TCP는 4계층으로 알고있는데요. 그럼 1) HTTP request message를 생성 후, 2) SSH/TLS handshake 과정이 먼저 일어나고 3) HTTP request message를 암호화 한 후, 4) HTTP request message를 4계층으로 넘겨줘서 3 way handshake 이 순서로 진행되는 건가요?? SSH/TLS가 먼저 일어나는지 3 way handshake가 먼저일어나는지 조금 헷갈려서 질문드립니다! 늘 상세한 답변 주셔서 너무 감사드려요!
-
미해결기출로 대비하는 개발자 전공면접 [CS 완전정복]
Array와 LinkedList 메모리 영역
강의를 보다가 궁금한 점이 생겨서 질문을 남깁니다. 동적 Array는 사용하다가 원소가 가득차면 resize가 일어나고, 이때 새로운 배열을 생성한다고 배웠습니다. 그러면 이때는 runtime 단계에서 memory allocation이 일어나서 Heap 메모리 영역에 할당되는 건가요?? 아니면 Stack memory 영역에 할당되는 건가요??
-
미해결기출로 대비하는 개발자 전공면접 [CS 완전정복]
PCB PC register?
안녕하세요 질문이 있습니다. PCB는 process state, process number .. 등 프로세스에 대해 필요한 정보를 얻을 수 있는 자료구조라고 하셨는데 PC register과 어떤차이점이 있는지 모르겠습니다. PCB는 주로 커널에 저장되어있고 PC register는 스레드 마다 있는것이 맞나요?
-
해결됨기출로 대비하는 개발자 전공면접 [CS 완전정복]
Context switch에 대해 질문드립니다.
안녕하세요. 강의를 보다가 Context switch에 대해 의문이 들어 질문드립니다. 멀티 프로세스를 설명하는 강의에서 'Context switch가 한 프로세스에서 다른 프로세스로 제어권을 넘겨주는 것'이라고 설명해주셨는데요. 이후 멀티 쓰레드 강의에서 쓰레드 간에 CPU 할당이 전환될 때도 똑같이 Context switch가 일어난다고 말씀해주셨습니다. - 그러면 Context switch의 개념이 '프로세스 간의 전환'과 '쓰레드 간의 전환' 두 개의 개념이 있는걸로 보면 되는걸까요? - 만약 그렇다면, 프로세스 간에 Context switch가 일어날 때는 PCB에 기존 프로세스 정보를 저장하고, 이후 프로세스 정보를 불러오는 작업이 일어나는데, 쓰레드 전환에서는 하나의 프로세스 내에서 일어나기 때문에 PCB에 저장, 조회 하는 작업이 생략되는건지 궁금합니다. - 쓰레드가 프로세스 내에 개별적으로 Stack 영역을 할당 받고 이들 간에 교환된다고 하셨는데, 이들 사이에서는 어떤 방법으로 Context switch가 동작하는지 궁금합니다.(PCB와 동일하게 프로세스 마다 쓰레드 정보를 보관하는 곳이 있나요?)
-
미해결운영체제 공룡책 강의
18분 10초경 평균 웨이팅타임에 대해 질문드립니다!
SJF 스케줄링 평균 대기시간에 대해서 구하고 있는데요, 프린트에서는 7.75로 기재되어 있는데 제가 구한 값과 조금 달라서 질문드립니다 ㅠ 0 + (8-1) + (12-2) + (21-3) = 35 35 / 4 = 8.75 로 계산이 나오는데, 어떤 점이 잘못된건지 알려주실 수 있을까요?
-
해결됨그림으로 쉽게 배우는 운영체제
프로세스 생성과 종료 질문3
답변 감사합니다 여기서 답변을 보고 추가적으로 궁금한 점이 생겼습니다 "그럼 이렇게 init 프로세스를 복사해 터미널이나 그에 필요한 프로세스가 생성되는데 보통 사용자가 실행하는 프로그램은 서로 자식-부모 관계를 가지지 않기 때문에 걱정하시는 것처럼 LOL.exe 프로세스를 종료해도 웹브라우저가 종료하는 일은 발생하지 않습니다!" 라고 답변을 주셨는데요 그렇다면 사용자가 실행하는 프로그램들은 부모 프로세스 없이 독립적으로 프로세스가 생성되는 것인가요? 아니면 그려주신 트리 모양에 적힌 기본적인 프로세스(?)들이 부모 프로세스가 되어서 자식 프로세스로 생성되는 것인가요? 즉 유닉스 OS에서는 모든 프로세스들이 부모 - 자식간의 관계를 가지면서 프로세스들이 생성되는 것인지 궁금합니다 웹브라우저와 LOL.exe가 서로 부모-자식 관계가 아니더라도 그렇다면 컴퓨터 부팅이후 최초로 웹브라우저를 실행했다고 가정했을시 웹브라우저는 어떤 프로세스(기본 프로세스가 되었든 임의의 프로세스가 되었든)의 자식 프로세스로써 생성이 되는건지 아니면 사용자가 실행하는 프로그램이므로 독립적인 프로세스로 생성되는 것인지가 궁금합니다. 두번째 질문으로 앞으로 해주시는 운영체제 대한 설명은 전부 유닉스 OS에만 적용되는 설명인 것인가요 아니면 윈도우 OS나 유닉스 OS나 공통적인 것이지만 일부 차이점이 있는 경우가 있는 것인가요 세번째 질문, 윈도우의 경우 보내주신 링크에서 "독립적으로 실행 되는 새 프로세스를 만듭니다. 그러나 편의상 관계를 부모-자식 관계 라고 합니다." 라는 설명으로 보아 부모 프로세스가 먼저 종료되더라도 자식 프로세스가 좀비 프로세스가 될 것 같지 않은데(서로 독립적인 프로세스 이므로) 제 생각이 맞나요?
-
미해결운영체제 공룡책 강의
피터슨 알고리즘쪽질문드립니다 .
강의 너무너무 잘 듣고있습니다 감사합니다 저 강의를 듣다가 코드를 보는데 while문에서 조건이있고 {}가 없는데 따로 실행은 없는건가요 무조건 일단 깃발교체만 하고 sum++로 가는건가요 >? =============================================cpp 에서는 thread가 있길래 이렇게 구현했습니다 #include <iostream> #include <thread> #define true 1 #define false 0 using namespace std; int sum; bool flag[2]; int turn; void producer() { int k; for (int i = 0; i < 10000; i++) { //0번이 producer, 1번이 consumer라고 생각 /*endtry section*/ flag[0] = true; turn = 1; while (turn == 1 && flag[1]) ; sum++; /*exit section*/ flag[0] = false; } } void consumer() { int k; for (int i = 0; i < 10000; i++) { //0번이 producer, 1번이 consumer라고 생각 flag[1] = true; turn = 0; while (turn == 1 && flag[1]) ; sum--; /*exit section*/ flag[1] = false; } } int main() { sum = 0; thread t1, t2; t1 = thread(consumer); t2 = thread(producer); cout << "sum : " << sum << endl; t1.join(); t2.join(); return 0; }
-
미해결운영체제 공룡책 강의
안녕하세요! Ex 4.17 질문입니다.
안녕하세요 교수님! 강의 너무 잘 듣고 있습니다. Ex 4.17(14분 쯤)에서 질문이 있습니다. 강의 상 P1(자식1), P3(자식1의 자식 - 자식2)는 if 안에서 각각 unique 쓰레드를 생성해서 총 2개의 쓰레드가 생성되는 것까지는 이해가 됩니다. 마지막 fork를 통해 P1(자식1)과 P3(자식2)가 복제가 되는데, 이 과정에서 if내에서 추가된 쓰레드들은 복제가 되지 않나요? fork는 오로지 프로세스만 복제를 하게 되는건지 문의드립니다!
-
미해결운영체제 공룡책 강의
vsCode와 wsl 연동 시 에러 발생
vscode에서 원격 창 오픈 시 wsl 연결 실패로 에러가 납니다. 제 랩탑에 docker도 있어서 docker까지 running으로 바꿨는데 해결이 안됩니다. 에러문구는 VS Code Server for WSL closed unexpectedly. Check WSL terminal for more details. 인데 vscode 터미널창의 에러를 더 적자면, Unable to detect if server is already installed: Error: Coimmand failed: C:\WINDOWS\System32\wsl.exe -d docker-desktop-data -e sh -c "[ -d ~/.vscode-server/bin/3c4e3df9e89829dce27b7b5c24508306b151f30d ] && prinf found || ([ -f /etc/alpine-release ] && printf alpine-; uname -m)" 가 제일 먼저 뜨는 빨간 글씨입니다....