묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
상위 프로토콜 체크섬 존재와 IPv6의 CRC제외의 연관성
헤더 효율화를 위해 CRC(순환 중복검사)를 제외합니다. 다만 상위 프로토콜(TCP, UDP)에서 체크섬이 있기 때문에 이를 제거할 수 있습니다.이 두 문장의 연결이 이해가 안됩니다. 단순히 접속사를 잘못 쓰신건지요?원래 의도하신 건 '상위 프로토콜에 체크섬이 있기 때문에 IPv6에서 헤더효율화를 위한 CRC제외가 가능하다' 라는 의미인지요?
-
해결됨넓고 얕게 외워서 컴공 전공자 되기
질문이 있습니다...!
싱글스레드 환경에서도 힙영역이 존재하는 경우가 있는걸로 알고 있습니다.강의에 따르면 프로세스(한집) 스레드 한개(사람 한명) 이니까 스레드가 프로세스가 할당받은 전체 공간만큼 알아서 사용 하면 되는거 아닌가요...?? 이건 언어 마다 다르게 동작하는 걸까요...??
-
해결됨FreeRTOS 프로그래밍
portYIELD() 사용법에 대해 질문드립니다.
안녕하세요. portYIELD() 사용법에 대해 궁금한게 있어 질문드립니다. portYIELD()를 실행하게 되면 task가 점유하고 있던 CPU를 반납하는 명령으로 알고 있습니다. 그런데 아래의 그림과 같이 실행을 하게 되면 TaskMain은 실행 되지 않아야 하지 않는지요? #define TASK_MAIN_PRIO 5 #define TASK_TASK1_PRIO 4 #define TASK_TASK2_PRIO 3 #define TASK_TASK3_PRIO 2 TaskHandle_t xHandleMain, xTask1Handle, xTask2Handle; void userThread(void) { xTaskCreate((TaskFunction_t)TaskMain, "TaskMain", 128, NULL, TASK_MAIN_PRIO, &xHandleMain); xTaskCreate((TaskFunction_t)vTask1, "vTask1", 128, NULL, TASK_TASK1_PRIO, &xTask1Handle); } void TaskMain(void const *pvParameters) { while(1) { for(uint8_t i=0; i<5; i++) { HAL_GPIO_TogglePin(GPIO5_BEAD_GPIO_Port, GPIO5_BEAD_Pin); HAL_Delay(1); } vTaskSuspend(xHandleMain); } } void vTask1(void const *pvParameters) { while(1) { for(uint8_t i=0; i<5; i++) { HAL_GPIO_TogglePin(GPIO4_BEAD_GPIO_Port, GPIO4_BEAD_Pin); HAL_Delay(1); } portYIELD(); vTaskResume(xHandleMain); //portYIELD(); } } 위 소스를 보게 되면최초 MainTask가 실행을 하다가 5번 GPIO를 5번 토굴하고 block 상태로 전환Task1번에서 gpio를 5번 토굴하고 vTaskResume을 실행하기 전에 portYIELD()를 만나기 때문에vTaskResume(xHandleMain) 실행이 안되어야 하지 않는지요?실행 결과 TaskMain이 실행되어 이렇게 문의드립니다. 감사합니다.
-
해결됨FreeRTOS 프로그래밍
정적/동적 Task 생성의 메모리 할당 영역
안녕하세요. 수업을 듣던 중 정적/동적 Task 생성 시 할당되는 메모리 영역과 관련해 질문 사항이 생겨 글 남깁니다.태스크와 메모리 파트 강의를 듣고 Task Stack 메모리는 동적/정적 할당이 가능하고, RTOS의 동적 할당은 RTOS 커널에서 지원하는 동적 메모리 할당자 함수를 쓰기 때문에 heap영역이 아닌 bss 영역에서 할당된다. 라고 이해하였습니다.즉, xTaskCreate() 함수를 사용하면 동적 할당이지만 데이터가 bss 영역에 할당되는 특성이 있다고 생각했었는데, '태스크 스택의 크기를 결정하기' 부분의 강의 끝부분에서 xTaskCreate() 는 heap 영역에 xTaskCreateStatic() 은 bss 영역에서 Task Stack을 쓴다고 말씀하여 기존에 제가 이해했던 부분과 일치하지 않았습니다.이와 관련해 인터넷에 검색해 보니, freertos.org 사이트에서는 xTaskCreate()를 사용하여 작업을 생성하면 필요한 RAM이 FreeRTOS 힙에 자동으로 할당된다. 라고 적혀있더군요.xTaskCreate() 함수는 bss 영역에 자동 할당되기도 하고, heap 영역에 자동 할당되기도 한다는 의미인가요?
-
해결됨기출로 대비하는 개발자 전공면접 [CS 완전정복]
시간복잡도 잘문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.2개의 스택으로 1개의 큐를 구현하는과정에서dequeue()를 할 때, 아웃스택이 비어있지않은 경우에는 O(1)을 갖고, 아웃스택이 비어있지 않은 경우에는 O(n)의 시간복잡도를 갖는건 이해했는데왜 결론적으로 O(1)의 시간복잡도를 갖는지 모르겠습니다.amortized의 정의도 함께 알려주시면 감사할것같습니다.
-
미해결CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
IT 대기업 100% 합격하는 방법 관련 질문
안녕하세요 선생님 IT대기업 100%합격하는 방법의 영상을 보고 개인적으로 계획을 짜봤는데 혹시 부족한 점이 있는지 피드백 한 번 주실 수 있나요??<현재 상황>1. 전공/비전공 : 비전공2. 사용가능 언어 : c++3. 프로젝트 : 0개4. cs지식 : cs지식의 정석 책과 강의 이용하여 학습 중5. 공부 : 큰돌 코딩테스트 강의 학습 중 ( 2023.03.22 현재 2주차 끝)6. 직군 : 백앤드7. 대학교 졸업 후 취업에 전념할 수 있는 상황 <계획>코딩테스트 4월 30일까지 코딩테스트 강의 완료하기 -> 이후 감각을 잃지 않기 위해 하루에 1문제씩 문제 풀기프로젝트큰돌님이 추천해 주신 좋은 부트캠프를 들어갔을 경우(부트캠프를 다니며 자바, 스프링 학습(자바 - 인프런 나도코딩 , 스프링 - 인프런 김영한)부트캠프 같은 팀원들과 프로젝트 진행 -> 5월 ~ 11월(우테코, 데브코스, 사피 - > 큰돌의 부트캠프 추천영상 기준)부트캠프를 안 들어갔을 경우(2023.5월 ~ 2023.12월)자바 - 나도코딩, 스프링 -인프런 김영한 강의 독학으로 학습8월부터 프로젝트 팀원 구해서 진행 (3개월 2개 or 6개월 1개 )cs 지식매일 꾸준히 30분 학습 30분 복습오픈소스 컨트리뷰터 (2023. 8월 ~ 2024. 2월)8월부터 프로젝트 진행하면서 스프링 부트 -> 스프링 컨트리뷰터 도전!!
-
해결됨넓고 얕게 외워서 컴공 전공자 되기
파일시스템 삭제시 질문 있습니다.,
파일을 삭제하게 되면 실제로 삭제하는것이 아닌 delete플래그를 설정한다고 하셨는데그럼 예를들어(예를 들기위해 운영체제가 차지하는 용량으 0으로 하겠습니다.) 256gb HDD에 1gb 파일 256개를 설치후 전부 삭제하게되면 운영체제상 보여지는 UI에는 0gb로 남아 있을텐데 복원이 된다는건 실제로 삭제된게 아니라는 것이고 데이터도 남아 있는것일텐데 이게 어떻게 가능한건가요...?
-
해결됨곰책으로 쉽게 배우는 최소한의 운영체제론
강의자료
선생님 안녕하세요!혹시 강의자료 파일은 어디에서 다운 받을 수 있을까요?
-
해결됨곰책으로 쉽게 배우는 최소한의 운영체제론
레디큐와 blocking/unblocking
레디큐에서 cpu 코어 개수만큼 실행된다고 했을때, 예를 들어 8개의 process가 실행된다고 했을때 unblocking 상태라고 하면, 1개의 process에서 입출력 요청이 일어난다면 모든 process가 '대기 상태'가 되나요?
-
미해결CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
인접행렬(adjacency matrix) (2 / 2) 질문
안녕하세요 큰돌님인접행렬(adjacency matrix) (2 / 2) 강의에서코드 궁금한게 있습니다..1-2, 1-3, 3-4 인접 행렬이면a[1][2] = 1 ... 등등등 만들잖아요그럼 나머지 공간 a[0][0] = ....등등 0으로 자동 할당 되는거 맞나요?그럼 main 메서드에for(i =0 ...) for(j =0 ...) if(a[i][j] && visited[i] == 0) go(i)이 코드로 보면 i=0 ,j=0 일때 go함수가 호출될거 같은데go(i) cout << i << \ncout가 0을 찍어야하는게 아닌가요?그리고 if문에 조건문 true false에 따라 코드 타는걸로아는데if(visited[i])if(a[i][j])이런경우 0 또는 1로 값이들어가면 C++에서는 1이면 true 로도 볼수 있나요?
-
해결됨곰책으로 쉽게 배우는 최소한의 운영체제론
메모리관리기법/가상메모리개요/물리메모리 크기 질문있습니다.
안녕하세요. 선생님~[가상메모리개요]수업의 14:31장면에서 Process1(물리메모리)관련 질문있습니다.P1이 실행되고, 물리메모리는 1MB(필요한부분만 적재)할당 받은 상황인데요.Q. P1이 할당받은 1MB는 이 후에 변동될수있는 수치인지 궁금합니다.ex) 처음 1MB 할당 => P1으로부터 메모리요청이더 들어옴 => 물리메모리 여유공간은 충분 위 상황일떄, 물리메모리에서 P1의 총 크기는 1MB에서 2MB(예시)로 늘어날수있는지?아니면 맨 처음 할당받은 1MB로 고정(프로세스 종료전까지 안바뀜)인지? 궁금합니다.
-
미해결CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
mac 주소와 호스트 주소의 차이점이 궁금해요.
하나의 네트워크 주소에 장치들이 여러개 맞물려서 사용하는 거잖아요. 스위치가 ip를 각각 컨버팅 해주고요. 그래서 이 장치들이 수신 받을 때 ARP가 왔을 때 본인의 호스트 주소와 비교해서 RARP를 던지고 서로 통신하면 되는 거 아닌가요? 혹시 그런 가상의 호스트 주소가 장치의 mac 주소를 기반으로 만들어지나요?
-
해결됨곰책으로 쉽게 배우는 최소한의 운영체제론
NIC 송수신과 IOCP
NIC를 사용한 송신은 i/o buffer, tcp/ip 를 거쳐서 이루어지고 수신은 direct로 이루어진다라고 이해를 했는데요. 송신은 direct로 이루어지지 않는건가요? 안된다면 왜 그런가요?NIC에 DMA가 지원이되어서 direct로 process까지 수신이 된다 라고 이해를 했는데 IOCP 기능으로도 똑같이 direct로 process까지 수신이 된다 라고 말씀해주신 것 같습니다. DMA가 지원되면 tcp/ip, i/o buffer는 사용하지 않지만 거쳐간다 하지만 IOCP 기능을 사용하면 거쳐가지않고 바로 process로 간다 라고 이해해도 괜찮을까요?
-
해결됨FreeRTOS 프로그래밍
task를 생성 할 때에 stackDepth 설정 관련하여 궁금한게 있습니다.
강의를 보던 도중에 메모리 할당에 관련하여 몇가지 궁금한점이 있어 질문드립니다. 아래그림과 같이 stack 사이즈를 128로 지정하는 경우 task에 사용되는 메모리는 bss 영역에 할당되는게 맞는지요? 아래 그림과 같이 stack 사이즈를 변경하게되면 메모리에 할당이 되어 Memory Regions 창에 변화량이 보여야 하는데 반영되지 않는거 같아 질문드립니다. 테스크를 생성 할 때에 stack 사이즈는 어떤 메모리에서 할당되는건지요?감사합니다.
-
해결됨넓고 얕게 외워서 컴공 전공자 되기
Stack과 heap
stack은 thread가 사용하고 heap은 process가 사용한다고 말씀하셨고 각 stack별로 용도가 다르고 heap은 공용으로 사용하는 주거 공간이라고 설명해주셨습니다.비유적으로 설명해주셔서 실제로 다른 곳에서는 어떻게 정리되어있는지 궁금해서 찾아봤는데 stack은 함수가 호출되면서 지역 변수와 매개변수가 저장되는 영역, heap은 사용자에 의해 메모리 공간이 동적으로 할당되고 해제되는 영역이라고 설명이 되어있었습니다.(찾아본 글: https://junghyun100.github.io/%ED%9E%99-%EC%8A%A4%ED%83%9D%EC%B0%A8%EC%9D%B4%EC%A0%90/)두 가지의 설명을 어떻게 연결(?)시켜서 이해할 수 있을지 모르겠습니다.
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
Chapter 07. 보조기억장치에 대한 질문
RAID 1 방식을 원본 저장되는 디스크와 복사본이 저장되는 디스크의 공간을 물리적으로 분리하면 2022년에 있었던 카카오 데이터 센터의 화재와 같은 상황에서의 문제를 피할 수 있나요?아니면 그런 것과는 무관한 것인가요?
-
미해결개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
음수 데이터의 표시에 관하여
플래그가 어차피 개입될 문제라면 그냥 처음부터 보수 개념이 아니라 그냥 해당 숫자에 음수 플래그만 도입되면 되는게 아닌가요?1010(2)의 음수 값을 괜히 0110(2)로 하지말고 똑같이 1010(2)로 하고 음수 플래그만 사용해서요..
-
해결됨기출로 대비하는 개발자 전공면접 [CS 완전정복]
Hash Table 질문
안녕하세요 강사님.좋은 hash function의 조건에서 해시값이 고르게 분포되게 하는 것을 적어주셨는데, 공간효율성을 최대한 좋게 하기 위해서일까요? 아니면 다른 이유들도 있을까요?
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
Chapter 06. 캐시 메모리에 대해 질문 드립니다.
iOS 의 swift 언어를 공부할 때 메모리는 코드, 데이터, 힙, 스택으로 나누어져 있으며 이것은 가상 메모리 상의 구분으로 알고 있습니다.코드 영역에는 컴파일된 저급 언어, 데이터 영역에는 전역변수나 타입 자체가 저장 되며 힙 영역에는 참조타입의 객체 들이 주로 저장되는 것으로 알고 있습니다. 왠지 캐시메모리에는 컴파일된 저급 언어 전체 와 데이터 영역이나 힙 영역에 저장된 데이터 중 일부가 주로 저장 될 것 같다는 생각이 드는데, 실제로 그런지 아니면 가상 메모리상의 구분 과는 무관한 것인지 궁금한데 알 수 있을까요?
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
CPU 에 관련한 질문드립니다. (Chapter 05)
애플의 CPU 가 전성비가 좋다는 이야기를 종종 들어서 생겨난 호기심인데요.CPU 의 ISA 가 전성비에도 영향을 주나요? 책을 읽고 강의를 보면서(Chapter 05), 파이프라이닝이 수월한지가 전성비에 영향을 주는 건가? 하는 호기심이 생겼습니다.