묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결FreeRTOS 프로그래밍
멀티태스킹
안녕하세요 강사님! 해당 강의에서 LCD펌웨어를 멀티태스킹가능하도록 만드는 방법에 대해서 공부하였습니다.만약에 모터를 제어하는 펌웨어를 멀티태스킹 가능하게 task로 만들면 해당 task가 멀티태스킹 되면서 PWM duty cycle이 낮아질 수도 있나요??아니면 pwm 장치는 cpu와 독립적으로 동작해서 다른 task에게 선점당하여도 똑같은 출력을 유지하는지 궁금합니다!
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
FTA 파일 시스템에 대한 질문입니다.
안녕하세요 강사님!좋은 강의 잘 듣고 있습니다.이번에 마지막 강의인 파일 시스템을 수강하던 도중 질문이 생겨서 글을 작성하게 되었습니다.FTA 파일 시스템의 경우 기존 연결 할당 방식의 단점들을 해결한다는 말씀을 해 주셨습니다.연결 할당 방식의 문제로는 반드시 처음부터 접근을 해야 한다는 것블록에 오류가 발생하였을 때, 추후의 블록을 읽을 수 없다는 점입니다.그렇다면 FTA가 Table을 도입함에 따라 위 2가지 문제를 해결한 방식이 다음과 같은지 여쭤보고 싶습니다.Table을 참조하여 특정 파일의 중간 블록부터 읽을 수 있기 때문에, 첫번째 문제는 해결했다고 볼 수있다.블록에 다음 블록의 정보를 저장하지 않기 때문에, Table의 정보만 유효하다면, 다음 블록의 정보를 읽는데에는 문제가 없다. 좋은 강의 만들어 주셔서 감사합니다.
-
해결됨곰책으로 쉽게 배우는 최소한의 운영체제론
교착상태와 게임이 튕기는 현상
교착 혹은 wait가 걸리게 되면 os가 감시하여 강제종료 후 메모리를 회수하게 되는데 그 예로 들수있는것이 게임하던중 어떠한 이유로 튕겼을때 / 프로그램 응답대기가 맞을까요?
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
Working set 기반 프레임 할당 방식에 대한 질문입니다.
안녕하세요 강사님유익한 강의 감사히 듣고 있습니다.이번에 가상 메모리의 프레임 할당 방식에 대한 강의를 듣던 도중 working set 기만 모델에 대해 질문이 생겼습니다.사실 동적 할당 방식에 대한 질문이라고 볼 수도 있을 것 같은데,working set의 경우, 일정 시간을 두고, 참조되는 페이지를 통해 working set을 구성하여 프로세스에 프레임을 할당한다고 하셨습니다.그렇다면, 해당 프로세스가 가장 처음 실행이 될 때는 해당 프로세스에 대한 프레임 할당이 어떤식으로 이루어 지는지 궁금합니다.정적 할당의 경우에는 실행하기 전, 프로세스의 크기를 통해 미리 결정하고 들어가지만, 동적 할당의 경우에는 해당 프로세스를 실행하여 사용되는 프레임의 수를 통해 프레임을 할당한다고 하셨습니다.그렇다면 가장 초기에는 어떤식으로 프레임이 할당이 되어 지는지 궁금합니다. 감사합니다.새해 복 많이 받으세요~
-
해결됨곰책으로 쉽게 배우는 최소한의 운영체제론
멀티스레딩
안녕하세요, 선생님.(참고로 저는 C++언어를 모릅니다..)"멀티스레딩과 동기화 기본"강의에서main 함수가 부모 프로세스이고 차일드 프로세스로 별개의 프로세스고threadFuncton01,02,03은 하나의 _beginthread로 인해 멀티 스레딩이 되고 하나의 프로세스안에 threadFunction01,02,03이 있는 걸로 이해했습니다.맞을까요 ? Q1) Sleep()함수가 없을 때, threadFunction01,02,03이 실행되기도 전에 main함수가 종료되었는데, 그래서 threadFunction01,02,03이 실행이 되지 못해서 end가 안찍혔는데, main함수가 종료되었는데 threadFunction01이 나중에 종료될 수 있는지도 ... 설명 부탁드립니다.. Q2) 저는 큐가 한 개인 걸로 이해했는데요, 큐에 main함수 스레드를 m-1, threadFunction함수 스데드를 t-1, t-2, t-3로 한다면, [m-1, t-1, t-2, t-3] 순으로 큐에 있다가 sleep 때문에 m-1이 큐에서 빠졌다가 100ms 지나서 되돌아 올 때, 코어가 8개니까.. t-1, t-2, t-3가 임의의 코어가 나눠가졌는데.. 그 코어의 스케쥴링에 따라서 운이 좋게 t-3가 먼저 실행되어서 순서가 threandFunction01,03,02로 출력된 거라고 이해하면 될까요 ?Q3) 큐에 스레드가 쌓일 때, 함수의 실행 순서랑은 상관 없이 쌓이는 건가요...? Q4) 스레드의 실행 순서는 알 수 있다면.. 프로세스는 순서대로 실행되나요..?
-
미해결CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
프레임워크와 라이브러리
강의를 듣다가 중간 설명에 궁금한 점이 있어서 여쭤봅니다.axios는 라이브러리고 vue.js 는 프레임워크인데 axios의 경우 vue.js나 다른 라이브러리에 적용되어서 vue.js가 axios를 통해 http 통신을 받을 수 있다고 설명하셨고, 바로 다음에 vue.js는 프레임워크이기 때문에 react와 같은 라이브러리를 그 안에 넣기가 힘들다고 하셨습니다. 즉, 라이브러리는 라이브러리 혹은 프레임워크에 적용할 수 있지만, 프레임워크는 더 엄격하기 때문에 라이브러리를 받아들이거나 수정하기는 어려다는 설명이었습니다. 여기서, "axios를 통해" 라는 건 axios가 실제 vue.js에 포함되어 지지는 않고 그냥 거쳐가기 때문에 가능하다는건가요..? 그렇다면 프레임워크에 직접적인 변경이 아니라 그냥 라이브러리를 적용하는 건 허락이 된다는 의미일까요? 라이브러리는 프레임워크에 적용될 수 있지만, 프레임워크는 라이브러리를 받아들이는 건 어렵다는게 약간의 모순으로 들려서 마이너한 질문일 수 있지만 여쭤봅니다 :) 라이브러리가 프레임워크에 적용되는것은 다른 말로 프레임워크에서 라이브러리를 채택하여 받아들이는 형태이지 않을까 해서 혼돈이 일어났습니다,,
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
동기화 질문입니다.
안녕하세요! 강의 정말 유익하게 잘 듣고 있습니다.이번에 동기화 단원을 듣게 되면서, 몇가지 궁금증이 생겨서 질문을 하게 되었습니다. A 프로세스 혹은 쓰레드가 임계구역에서 작업을 수행하고 있었다고 가정을 하겠습니다. 이때 cpu가 지정한 타임 슬라이스를 초과하여 cpu를 사용하였고, 임계 구역에서의 진행이 완료되지 않은 상태로 타이머 인터럽트가 발생하였다고 가정을 하겠습니다. 이러한 상황에서 만약 새로운 프로세스 B가 해당 임계구역에 접근을 하게 된다면, 이에 대한 부분은 어떻게 처리가 되는 것인지 궁금합니다. 기존의 공유 자원이 업데이트 되지 않은 상태로 진행이 되게 되면, 분명히 레이스 컨디션이 발생할 수 도 있다고 생각이 듭니다. 세마포의 경우에는 임계 구역에 진입할 수 있는 프로세스의 개수, 즉 사용 가능한 공유 자원의 개수를 전역변수로 설정하여 여러 개의 공유자원을 관리할 수 있다고 하셨습니다. 그렇다면 세마포의 경우에는 각 공유자원의 종류에 따라 구분하여 관리는 할 수 없는 것인지 여쭤보고 싶습니다. 이것이 세마포의 단점? 이 되는 것인지 궁금합니다. 운영체제는 처음 공부해 보는 것이라서 질문이 좀 난잡하고 불명확할 수 있다는 점 죄송합니다.열정적인 강의 덕분에 재미있게 공부를 할 수 있는 것 같습니다!항상 감사합니다.
-
미해결운영체제 공룡책 강의
자바 Bounded-Buffer 코드 질문 있습니다.
안녕하세요. 좋은 강의 잘 듣고 있습니다. 다름이 아니라 해당 부분 자바 코드에서 의문점이 있어 질문 드려봅니다. synchronized 식별자를 붙인 메서드가 여러 개 있을 때 모니터 락이 각 메서드별로 생기는지 혹은 전체를 관리하는 하나의 모니터 락만 생기는지가 전 강의에서 언급이 되었는지 모르겠지만, 잘 기억이 안나서,, 두 케이스 모두 질문이 드립니다. 모니터 락이 각 메서드별로 생기는 경우take와 give는 count라는 공유 변수에 접근하고 있다고 생각됩니다. synchronized를 통해 각 메서드별로 mutual exclusive가 지켜지지만, take와 give 사이에서는 race condition 문제가 발생하지는 않나요 ?? 예를 들어 buffer size = 3, count = 1인 경우 give와 take가 동시에 실행될 수 있고, count++과 count--에서 race condition 문제가 발생할 수 있다고 생각했습니다. 직접 테스트 해 본 결과 해당 문제는 발생하지 않았는데, 왜 그런지가 궁금합니다. 모니터 락이 전체를 관리하는 하나만 생기는 경우하나의 메서드에서 무한정 대기하는 경우가 생길 것 같습니다. 아마 첫 번째 케이스가 맞다고 생각하지만 혹시라도 두 번째 케이스라면, take에서 count=0일 때 while문 안에서 wait()을 하는데, give 메서드가 실행이 되지 않으니 무한정 대기할 것이라고 생각됩니다. 쓰다보니 굉장히 길어졌습니다 ㅜㅜ.. 읽어주셔서 감사합니다.
-
해결됨넓고 얕게 외워서 컴공 전공자 되기
섹션1 - 외워야 할 단위 체계 #2 부분 질문
안녕하세요. 최호성 선생님.현재 좋은 강의 잘 수강하고 있습니다.넓고 얕게 외워서 컴공 전공자 되기 강의중섹션1 - 외워야 할 단위 체계 #2 부분에서 이해가 안 되는 부분이 있습니다.비슷한 질문을 강의 내 커뮤니티에서도 참고를 했는데도 약간 이해가 안 돼서 직접 문의드립니다.16비트의 경우 65,536가지의 경우의 수가 있고, 65,536 Bytes로 단위가 올라가면서 64KB가 된다고 하셨는데단위가 올라가는 개념은 이해가 되나메모리에서 데이터를 다루기 위한 최소 단위가 1바이트이고 1바이트는 곧 8비트를 의미하는 것으로 압니다.그럼 16비트 자체는 2바이트라고 볼 수 있을 텐데 강의에서 알려주시는 16비트는 65,536가지의 경우의 수가 65,536 Bytes가 되는 개념이 '1바이트를 관리하기 위한 메모리 주소가 총 65536개 있음'이라고 질문 글에 답변 주신 것을 봤습니다.16비트 -> 2바이트16비트 -> 65,536바이트(메모리 주소 개수)이렇게 놓고 본다면 위의 16비트 -> 65,536 바이트라는 개념에서 바이트->비트 단위로 다시 계산해 본다면 524,288비트로 계산이 되어서 위 2개의 경우가 서로 다른 개념이라고 생각이 되기는 하는데.. 어떻게 다른 개념인지 이해가 잘 안됩니다.'16비트 -> 2바이트'는 단순 메모리 저장 단위 개념?'16비트 -> 65,536바이트'는 운영체제 내부에서 메모리 사용되는 값의 개념?이렇게 두 가지가 다른 경우라고 이해하는 게 맞을까요?말씀처럼 넓고 얕게 외우고 싶은데 이 부분은 헷갈려서 어떻게 얕게 외워야 할지 모르겠습니다...개념이 제대로 안 잡혀서 질문을 제대로 드렸는지도 모르겠습니다..도움 부탁드립니다!감사합니다.
-
해결됨운영체제 공룡책 강의
window10 이 아니면 안되나요??
윈도우10보다 이상이면 리눅스 프로그래밍 안되는걸까요??
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
FIFO second-chance와 LRU의 성능 차이가 나나요?
안녕하세요 강의 잘 듣고 있습니다.페이지 교체 알고리즘 중 가장 오래 사용되지 않은 페이지의 스왑 아웃과 먼저 들어온 페이지들 중 참조되지 않은 페이지를 선별하여 스왑아웃 하는 것이 결과적으로 비슷한 결과가 나올 거 같은 생각이 들었습니다.제가 잘 이해한 게 맞다면 예시로 들어주신 참조열 2313523423의 경우에도 두 방식이 동일하게 2, 1, 5를 스왑 아웃 하는 결과가 나오는 듯 합니다.이 둘의 사용성에 대한 더 구체적인 차이를 알 수 있을까요?
-
미해결그림으로 쉽게 배우는 운영체제
0번 프로세스 1번 프로세스 질문이요
0번 프로세스와 1번 프로세스의 차이가 궁금해서 질문해봅니다 이 사진이맞는걸까요 아니면 이 사진이 맞는걸까요?
-
미해결CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
프로젝트
안녕하세요 이번에 팀 프로젝트를 하게된 백엔드 취준생입니다. 프로젝트에서 중요하게 다룰 내용 중 하나가 팀원과의 소통 및 협업이라구 하셨는데요, 프론트엔드 개발자는 두 명있는데 백엔드는 저 혼자인 상태입니다. 근데 나중에 백엔드 개발자가 저 혼자라는게 소통 및 협업에 있어 면접관들이 마이너스로 볼 요소가 되나요?만약 백엔드 개발자가 혼자라서 마이너스 요소가 된다면 중간에라도 백엔드를 한 명 더 추가해야 되나 싶네요 ㅜㅠ
-
해결됨곰책으로 쉽게 배우는 최소한의 운영체제론
자료구조 공부
안녕하세요, 선생님.새해 복 많이 받으세요.좋은 강의 잘 보고 있습니다.운영체제 강의 수강하면서 운영체제 및 가상 메모리를 잘 이해하려면 C언어를 공부해야하는 게 전제 조건일까요.. ?저는 1년차(비전공자)백엔드 개발자로 자바스크립트를 사용하고 공부해오고 있는데요... 선생님의 로드맵으로 강의를 수강하면서 c언어 공부도 해야 이 강의를 좀 더 이해할 수 있는 건가 해서 문의드립니다. 감사합니다.
-
해결됨FreeRTOS 프로그래밍
LCD 펌웨어 코드 질문입니다
안녕하세요. LCD 펌웨어 코드는 개발자가 일일이 작성해야하는 것인가요? 아니면 해당 제품을 사면 펌웨어 코드가 같이 오는 건가요?
-
해결됨FreeRTOS 프로그래밍
뮤텍스 질문입니다.
안녕하세요. 뮤텍스 강의 수강중에 질문이 있습니다. 뮤텍스는 우선순위전도 문제를 해결하는 능력이 있는 세마포어라고 볼 수 있습니다. 이 우선순위전도 문제를 뮤텍스를 사용하면 저절로 해결되는 것인가요?
-
해결됨넓고 얕게 외워서 컴공 전공자 되기
Native Code 질문입니다!
안녕하세요! Native Code와 Managed Code 관련해서 질문을 남겨 봅니다! C언어의 컴파일 과정에서, 목적 파일이 생성 되지않습니까?이러한 목적 파일이, 링킹 과정을 거치면 실행 파일이 되는걸로 알고 있습니다 여기서 질문입니다!실행 파일의 적힌 실행 코드가, Native Code와 같은 의미인가요?JVM과 같이, 소프트웨어 CPU(virtual machine)를 예로 들었을 때, 컴파일 과정을 거치고, 최종적으로 만들어진 실행파일의 적힌 코드는 Managed code라고 보면 되는걸까요? 감사합니다!
-
해결됨넓고 얕게 외워서 컴공 전공자 되기
가상메모리 관련잘문입니다
Hdd의 용량을 많이 사용했을때 컴퓨터가 느려졌다 느껴지게되는것이 가상메모리로 할당할 영역이 줄어들어서인가요? 같은 양의 연산을 할 때 메모리의 용량이 적을수록 할당하는 가상메모리의 용량이 커지나요?
-
미해결CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
언어
현재 파이썬과 html만 어느정도 익혀둔 상태인 입문자 입니다. 현재 json강의만 들었는데 json은 파이썬의 dictionary덕에 이해할 수 있었습니다. 그런데 책을 보니 주로 수업에서 사용하는 언어가 자바나 자바스크립트가 많더라고요 그래서 혹시 다른 챕터를 들을 때 자바나 자바스크립트에 대한 이해도 없이 따라가기가 어려운지 궁금하니다.
-
미해결홍정모의 따라하며 배우는 C언어
운영체제 구성 그림에서 입출력 장치의 위치
안녕하세요. "0.3.운영체제가 해주는 일들" 설명을 듣다가 의문점이 생겨서 질문 남깁니다. <그림1>위의 그림을 보면서 저는 사용자가 하드웨어 자원을 사용하기 위해서는 직접 하드웨어를 사용할 수 없기에, 응용 프로그램을 실행하고 응용 프로그램은 커널을 통해 하드웨어 자원을 사용하는 것이라고 이해했습니다. CPU, 메모리, 보조기억 장치는 직접 사용자와 상호작용을 할 수 없다는 것은 이해가 되지만(직접 손으로 조작하여 사용할 수 없기 때문), 입출력 장치는 사용자와 직접 상호작용 한다고 생각했습니다. 왜냐하면 직관적으로 생각을 해보면, 프로그램을 실행 할 때 "마우스로 응용프로그램을 클릭 or 키보드로 명령어 입력(입출력 장치 사용)-> 응용 프로그램 실행-> Kernel을 통한 하드웨어 사용(CPU, 메모리, 보조 기억장치)" 과 같은 과정이 일어나기 때문에, 입출력 장치는 사용자와 제일 먼저 상호작용 하는 것 아닌가? 라는 생각을 했습니다. <그림2>궁금증을 해결하기 위해 검색을 해보니, 다음과 같은 그림을 찾을 수 있었습니다. 위 그림을 보면 키보드 마우스 등등 입출력 장치는 사용자와 가장 먼저 상호작용을 하는 것처럼 나와있고 이는 직관적으로 이해가 됩니다. 요약해서 질문을 드리면 입출력 장치는 사용자와 가장 먼저 상호작용 하는 하드웨어임에도 불구하고 왜 <그림1>에서는 사용자와 가장 멀리 떨어진 부분에 위치하는 지 궁금합니다. 긴 글 읽어주셔서 감사드립니다.