묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결FreeRTOS 프로그래밍
만약에 포팅을 할때 1년에 한번 잡는 치명적인 문제를 해결하는 코드가 들어갔다고 가정하면
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 그 문제가 나타날 때 까지 예상 되는 부분으로만 감지를 해야하는것일까요? 포팅은 결국에 옮기고 문제가 생기면 해결한다는 사후적인 해결책만을 가지고 있는 것인지 궁금합니다.
-
미해결그림으로 쉽게 배우는 운영체제
여러 의문점
의문점이 많네요... CPU가 MMU에게 논리주소를 전달 -> 몇 번 세그먼트 인지 알아냄-> MMU내의 세그먼트 테이블 베이스 레지스터를 이용해 메모리 내에 있는 세그멘테이션 테이블을 찾음 이 과정인데, 의문점은 MMU에서 몇 번 세그먼트인지 어떻게 알아내는가? ( 몇 번 세그먼트에서 '몇 번'이라는게 애초에 무엇을 의미하나요? 힙, 스택, 데이터, 코드 각 영역을 개별의 세그먼트로 인식하는데, 프로세스가 여러개니 말 그대로 여러 영역을 나열했을 때 n번에 해당하는 것을 의미하는건가요? 아니면 각 프로세스의 모듈중 n번째를 의미하는 건가요? MMU내의 세그먼트 테이블 베이스 레지스터는 CPU옆에 위치하나요?-> MMU는 어디에 있는걸까요? 컨텍스트 스위칭 할 때마다 세그먼트 테이블 베이스 레지스터를 해당 프로세스의 것으로 바꿔준다고 하셨는데 무슨 값인지 어떻게 알고 바꿔주나요? PCB에 있나요? ( '바꿔주는 값'은 자신의 세그먼트 테이블은 메모리의 n번지에 있음을 나타내는 값인가요? )-> 세그멘테이션 테이블은 프로세스마다 개별로 존재하는지? 추가로 예시로 들어주신거에서 "CPU에서 세그먼트 1번이 632번지로 접근한다고 가정" 이 문장이 이해가 잘 안가네요CPU가 논리주소 632번지로 접근한다고 하는것과 뭐가 다른건가요?
-
해결됨리눅스 퍼미션 마스터클래스 과정 – 「기초부터 실무·보안·서비스 운영까지」
72강의 DNS개념(수업자료)에 자료가 없어서 문의 드립니다.
안녕하세요. 유투브에서 많은 도움을 받고 inflearn에서 강사님의 강의를 수강하게 된 학생입니다.좋은 강의 감사합니다.72강의 DNS개념(수업자료)를 들어가봐도 자료가 없습니다.강의를 올리는 과정에서 실수가 발생한게 아닌지 싶어 문의 드립니다.
-
해결됨CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
오버라이딩 관련하여 질문드립니다.
안녕하세요.강의 잘 듣고 있습니다.오버라이딩 관련하여 질문드립니다.class Parent { static void display() { System.out.println("부모의 static"); } } class Child extends Parent { static void display() { System.out.println("자식의 static"); } } public class MyClass { public static void main(String args[]) { Child c = new Child(); c.display(); } }만약 이렇게 하면 자식과 부모에서 오버라이딩이 가능한 것 같은데 이렇게 일반적으로 사용하지 않는지 궁금합니다. 감사합니다.
-
미해결그림으로 쉽게 배우는 운영체제
CPU 스케줄링 RR 강의 2:54에서 질문 있습니다.
| P1(25s) | P2(4s) | P3(10s) | // 타임슬라이스: 10s 일때,0 | P1(10) | P1(15s) | P2(4s) | P3(10s) | // P1 대기시간 0초0 + 10 | P2(4s) | P3(10s) | P1(15s) | // P2 대기시간 10초0 + 10 + 14 | P3(10s) | P1(15s) | // P3 대기시간 14초0+ 10 + 14 + 10 | P1(15s) | // P1의 대기시간 24초 마지막 P1의 대기시간은 14초가 아니라 24초 아닌가요?왜 P1의 대기시간이 14초인지 궁금합니다
-
미해결그림으로 쉽게 배우는 운영체제
CPU Bound Process와 sleep, yield에 대해
프로세스가 실행하다가 스스로 cpu를 반납하면 cpu사용량이 적은 것으로 I/O BOund Process일 확률이 높고, 실행하다가 타임 슬라이스 다 써서 반납하는 상황이면 CPU Bound Process일 확률이 높다고 하셨는데, sleep이나 yield로 사용자가 의도적 반납을 한 경우에는 어떻게 되는걸까요?
-
해결됨Windows System 프로그래밍
Critical Section과 SRWlock의 차이
Spin Count 초과 이후 스레드가 'Blocked' 상태에서 깨어나는 과정에서의 Critical Section과 SRWLOCK의 차이가 궁금합니다. 영천님의 LockTest 예제 코드를 이용하여 Lock을 선점한 스레드가 Lock을 해제하기 전에 Sleep() 코드를 추가한 상태에서 디버깅을 시작해보았습니다. (대기 중인 스레드의 Spin Count 초과 유도) 우선 두 경우 모두 락을 선점한 스레드가 락을 해제하면서 어떤 메모리 주소와 맵핑된 Thread ID를 읽어와서 내부적으로 NtAlertThreadByThreadId()의 인자로 넘겨주는것은 동일하였습니다. 하지만 Critical Section의 경우에는 LeaveCriticalSection() 내부에서 RtlpWakeByAddress()를 추가로 호출하고 대기중인 Thread ID를 얻어온 뒤 그 함수의 내부에서 NtAlertThreadByThreadId()를 호출하는 반면, SRWlock의 경우에는 ReleaseSRWLockExclusive() 내부에서 다른 함수 Call 없이 Critical Section보다는 보다 간소화(?)된 동작으로 Thread ID를 얻어오고 곧바로 NtAlertThreadByThreadId()를 호출하였습니다. 이걸보고 든 의문인데 영천님 블로그에 올라와있는 'Spin Count 도중 YieldProcessor() 관련 내용'을 제외하고 혹시 Critical Section과 SRWlock사이 성능 차이의 이유는 애초에 SRWlock은 Spin Count를 초과한 상태일때 ReleaseSRWLockExclusive()을 호출한 스레드에서 보다 간소화된 동작과 불필요한 함수 Call 없이 Thread ID를 얻어올 수 있도록 어떠한 정보(?)를 추가해준 뒤 Blocked 상태에 빠지게되는 등의 기능 때문이라고 봐도 될까요? 아직 근거 없는 추측이긴 합니다...
-
미해결FreeRTOS 프로그래밍
STM32 포팅할 때 STM32 Project가 없음
안녕하세요 강의듣고있는 학생입니다.STM32 포팅-시작 강의에서, File - New - STM32 Project로 쭉쭉 넘어가는데 제 IDE에서는 아래 그림처럼 STM32 Project가 없습니다.버전 차이 인것으로 생각되고 STM32 Project Create/Import를 통해서 PORT를 생성했는데 강의처럼 .ioc 파일이 없습니다. 버전 문제라면 강사님은 STM32CubeIDE 1.0.2를 하신 것 같은데.. 이거로 다시 해보겠습니다. 현재 저는 2.0.0 입니다.
-
미해결FreeRTOS 프로그래밍
FreeRTOS 멀티코어 지원안됨?
안녕하세요. 강의 너무 잘 듣고있습니다.그런데 FreeRTOS 소개 강의를 듣다가, 단점으로 멀티코어 지원 안됨. 이라는 말을 듣고 이런저런 검색을 해보았는데요..https://embeddedai.tistory.com/entry/FreeRTOS-%EB%A9%80%ED%8B%B0%EC%BD%94%EC%96%B4-%EC%A7%80%EC%9B%90 이런 글을 보면, 최근 FreeRTOS가 SMP? 기능을 도입해서 멀티코어 지원을 하도록 되었다는 것 같은데, 맞을까요?
-
미해결리눅스 커널의 구조와 원리: 워크큐 [저자 직강 1부-7]
강의 업로드 오류 확인 요청
안녕하세요, 항상 도움 받고 있습니다. Q&A는 아니고 강의 진행 간 강의 중복 업로드가 확인되어 해당 내용 전달 드립니다."42. 워크 핸들러에 전달되는 매개 인자 디버깅"의 강의가 "52. ftrace 분석: 워크큐 와치독" 강의로 잘못 업로드된 것 같으니, 확인 부탁드립니다. 감사합니다.
-
미해결그림으로 쉽게 배우는 운영체제
커널과 인터페이스 개념
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 운영체제에서 제일 중요한게 커널이라고 했는데커널이 프로그램인가요?운영체제가 윈도우, 리눅스이면 이 운영체제 중에서 정체가 뭔지 궁금합니다또 사람과 커널의 인터페이스 종류가 gui, cli 라고 하셨는데 인터페이스의 개념을 뭐라고 생각해야 하나요?컴퓨터는 이런 개념들이 너무 모호해서 이해해가기 어렵네요
-
해결됨CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
교착상태의 4가지 필요조건이 필요충분조건이 아닌 이유
안녕하세요 선생님 강의 잘 듣고 있습니다. 예전에 운영체제에 대해 배울 때, '교착상태의 4가지 필요충분조건'이라고 배웠었는데, 교안에서는 필요조건이지, 필요충분조건이 아니라고 되어있더라구요. 그렇다면, 4가지 조건이 충족되어도 교착상태가 발생하지 않을 수 있다는 것인데, 어떤 경우인지 궁금합니다.
-
미해결개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
17:00 부분에 ddr4 sdram은 길이 16개인듯한 ram이라고 설명했는데
제가 이해한 바로는 ddr4 sdram은 ddr sdram의 4배 ddr은 sdr의 2배여서sdr기준으로 ddr4 sdram은 16개가 아닌 8개의 길로 이해가 되는데 아닌가요?
-
해결됨CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
렌더 트리, 렌더 레이어와 그래픽 레이어
안녕하세요 선생님. 강의 잘 듣고 있습니다. 오늘은 렌더 트리와 렌더 레이어에 대해 질문이 있습니다. 렌더 트리가 랜더 객체들이 모인 거라면,그 렌더 객체가 랜더 트리와 그래픽 레이어로 분리되는 것으로 보면 될까요? 렌더 객체가 기본적으로는 렌더 레이어가 되지만, 일부(GPU에서 처리되는 30개 미만 정도)는 그래픽 레이어가 되는 걸로 이해하면 맞는 걸까요? 답변 미리 감사드립니다.
-
해결됨[CS 기술면접 2] 말이 트이는 운영체제
블로킹/논블로킹과 동기/비동기
안녕하십니까 운영체제 관련 강의 수강중인 학생입니다. 강의를 보다가 궁금한점이 생겨 질문을 남깁니다. 하드웨어 수행 과정 챕터의 용어를 설명해주시는 과정에서 동기식 입출력과 비동기식 입출력에 대한 내용이 있습니다. 제어권을 바로 다시 돌려받냐, 제어권을 넘긴상태로 일을 진행하지 못하고 대기하냐에 대한 설명은 블로킹/논블로킹으로 알고있고 동기/비동기의 경우에는 결과 순서가 보장되냐의 차이로 알고있습니다. 해당 개념들이 유사하지만 조금 다른걸로 이해하고있는데, 동기식 입출력과 비동기식 입출력이라고 말씀해주신 이유가 궁금합니다. 혹시 제가 놓친 부분이 있을까요??
-
해결됨CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
로컬스토리지, 세션스토리지, 쿠키의 공통점
안녕하세요! 강의 잘 듣고 있습니다. 선생님. 오늘은 로컬스토리지, 세션스토리지, 쿠키의 공통점에서 "캐싱으로 인해 다운로드 하는 컨텐츠가 줄어들어 웹사이트의 컨텐츠를 더 빨리 다운로드가 가능하다"는 부분에 대해 이해가 안가는 부분이 있어 질문드립니다. 우선 쿠키는 사용자 정보를 저장하는 건데, 웹사이트의 컨텐츠를 빨리 받는 것과 관련이 어떻게 있는지 모르겠습니다. 또한 로컬스토리지 같은 경우도 사용 예시가 '입력창에 입력했던 기록', '새로고침해도 남아있는 필터링 값', '장바구니', '로그인 유지'인데 웹사이트의 컨텐츠 다운로드 속도를 어떻게 빠르게 하는지는 모르겠습니다. 좋은 강의 해주셔서 잘 듣고 있습니다. 답변 미리 감사드립니다!
-
해결됨[CS 기술면접 2] 말이 트이는 운영체제
입출력 명령을 위한 인터럽트 발생
하드웨어 수행 과정 - CPU 연산과 I/O 연산, 인터럽트, 사용자 모드와 커널모드, 시스템 콜 용어 정리수강 중입니다.p.10 의 프로그램 수행 과정 내용에서 프로그램 A 가 입출력 명령을 지시했을 때, 프로세스 A 가 직접 인터럽트를 발생시킨다는 부분의 내용이 잘 이해가 가지 않습니다.프로그램 A 에서 입출력과 관련한 명령이 존재하는 경우 프로세스 A 에서 시스템 콜을 실행(트랩)하고, 프로세스 A 가 커널 모드로 변경되어 실제 I/O 명령이 입출력 블로킹으로 수행되므로 이 때 CPU 제어권이 프로그램 B 에게 넘어가야 하는 것 아닌가요?이후 I/O 명령이 완료되는 경우 인터럽트가 발생하는 흐름은 동일하게 동작하는 것으로 이해했는데2,3번 수행 과정이 제가 알고 있는 내용과는 일치하지 않는 것 같아서 질문 드립니다.
-
해결됨CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
IPv4가 IPv6보다 빠른 경우
안녕하세요! 강의 너무 잘 듣고 있습니다. 오늘은 IPv4, IPv6에서 질문이 있습니다. "일반적으로 IPv6가 속도가 빠르지만, 일부사례에서는 IP4보다 속도가 느린 경우가 있다" 그 일부사례가 어떤 경우가 있을까요? IPv6의 헤더 고정길이(40비트)가 더 클 수 있어서 그런걸까요?아니면 네트워크 장치(라우터 등) 중에서 IPv6와 호환(?)이 안되는 경우가 있어서 그런걸까요? 질문 받아주셔서 감사드립니다!
-
미해결FreeRTOS 프로그래밍
[소스코드 분석-configUSE_TIME_SLICING] TASK1,2의 우선순위가 동일할 때, configUSE_TIME_SLICING값 변경에 따른 출력 변화
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. #if ( ( configUSE_PREEMPTION == 1 ) && ( configUSE_TIME_SLICING == 1 ) ) { if( listCURRENT_LIST_LENGTH( &( pxReadyTasksLists[ pxCurrentTCB->uxPriority ] ) ) > ( UBaseType_t ) 1 ) { xSwitchRequired = pdTRUE; } else { mtCOVERAGE_TEST_MARKER(); } } configUSE_TIME_SLICING값이 1->0이 되면 위 코드의 실행 조건이 변경되어 스케쥴러가 cpu 양보를 고려하지 않아 처음 cpu를 잡은 task만 반복해서 동작하게 된다는 것 까지는 이해했습니다.이때 저의 경우에 (1) configUSE_TIME_SLICING == 1 이면 'bbbba...'으로 b가 더 많이 수행되고 (2) configUSE_TIME_SLICING == 0 이면 'a'만 계속 해서 출력되는데 위에서 저의 이해를 바탕으로 configUSE_TIME_SLICING == 1인 경우에 'aaaaaaaaaaab...' 이런식으로 나와야 할 것 같은데(혹은 (2)번에서 'b'만 출력)두 경우에서 먼저 cpu를 선점하는 task가 다른 이유가 궁금합니다!
-
해결됨CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
UDP가 전송계층의 역할을 못하는 건 아닌지
안녕하세요 선생님 강의 잘 듣고 있습니다. 전송계층에서 UDP 프로토콜을 공부하다 의문이 있어 질문 드리게 되었습니다. 전송 계층은 데이터가 오류없이 순서대로 전달되도록 돕는 계층이라고 설명해주셨는데요, 전송계층의 대표 프로토콜 중 하나인 UDP는 신뢰성이 없고, 순서도 보장하지 않는데, 전송 계층의 대표 프로토콜이 될 수 있는 이유가 궁금합니다. 기업들에서 UDP를 최적화해서 신뢰성있도록 바꾸기 때문인 걸까요?? 질문 받아주셔서 감사합니다.