묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
동기화 기법과 그냥 반복문 돌리는 것의 차이
생산자 소비자 문제는 상품의 개수라는 전역 변수이자 공유 자원이 핵심이고, 이를 위해서 상호배제를 위한 동기화가 필요합니다.하지만 2회독을 하면서,예를들어 생산 1000번, 소비 1000번 한다고 했을 때그냥 생산 반복문 1000번, 소비 반복문 1000번 돌리면 상품의 개수가 0이 되어서 문제가 없지 않나..?그렇다면 동기화 기법이 왜 필요하지..? 라는 의문점이 들었습니다.한번 더 생각해보면 실제로 현실에서는 생산 1000번, 소비 1000번이 순서대로 일어나지 않으니까 동기화 기법이 필요한건가..?라는 나름의 해답도 떠올랐는데,둘의 차이를 어떻게 봐야 할까요?
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
메모리와 프로세스와 CPU
초창기 강의에서메모리와 CPU에대해서 설명해주셧을때 메모리(RAM)는 프로세스(현재 실행중인 프로그램)에 데이터와 명령어를 저장한다고 하였다고 들었습니다.프로그램이 실행하려면 메모리에 저장이 되어야한다고 이해가 안가는게 프로그램을 실행한다는건 CPU가 메모리에있는 데이터를 가지고와서 그 프로그램에 데이터와 명령어를 해석한후 동작을 시켜야 프로그램이 실행되는거 아닌가요? 그이후에 프로그램이 실행되면 거기에대한 명령어와 데이터가 저장되는거 아닌가요? 애초에 CPU가 명령어를 해석하고 동작시키기전에 메모리에 프로세스의 데이터들이 저장이 될 수가 있나요? 이 프로세스 즉, 현재 실행중인 프로그램 이라는 단어때문에 굉장히 애매모호 해지네요
-
해결됨독하게 시작하는 C 프로그래밍
Switch-case 문 예제
안녕하세요 강사님섹션 11 기본 제어문 switch-case문 예제 scanf_s에서 중간에 1을 쓰셨던데 이유를 알 수 있을까요?실제로 실행을 해보니 1을 넣으면 결과가 잘 나오는데 1을 넣지 않으면 실행창은 뜨는데 아래 실행 창 처럼 멈춰 있습니다. 각각의 이유를 알 수 있을까요?오류코드도 뜨는데 무슨 말인지 잘 모르겠는데 알려주실 수 있나요? 오류 코드 감사합니다.
-
해결됨독하게 시작하는 C 프로그래밍
나이, 이름 입력 예시에서 scanf_s() 함수 사용 이후 gets_s() 함수 사용 시 오류
gets_s() 함수가 키보드 추상화 파일의 버퍼에서 null이 나올 때까지 문자열을 가져오는 함수잖아요.scanf_s() 함수를 통해 5\n 이 저장되었다고 했을 때, %*c를 통해 \n을 제거하지 않으면 gets_s() 함수는 \n이 들어있어서 입력을 중지하는 거라고 이해했습니다.여기서 질문입니다. null이랑 \n 이랑 다르다고 알고 있는데 왜 null 이 나온 것처럼 gets_s() 함수가 수행되지 않는지 궁급합니다!!감사합니다. (꾸벅)
-
해결됨독하게 시작하는 C 프로그래밍
문자열처리 함수소개강의에서 질문 있습니다.
강의 감사히 듣고 있습니다.질문 두 가지 있습니다.1.strcat_s 함수를 설명하실 때 strcat_s(szPath + 17 + 4, sizeof(szPath) - 25, "C programming");이라고 해주셨는데 22번째 인덱스부터 시작하여 널문자를 찾고 이어붙이는 구문이라면 전체 배열의 크기도 sizeof(szPath)-21로 조정을 해야 하는 것 아닌가요? 2.strcat_s(szPath + 17 + 8, sizeof(szPath) - 25, "C programming");에서 오류가 나는 것은 문자열 배열 넘어의 메모리를 시작값으로 설정했다는 것인데 확인할 수 있는 null 이 없기 때문인 건가요?감사합니다.
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
프로세스 동기화 예시 질문
안녕하세요 강의를 복습하고 있는 학생입니다.책과 강의에서 프로세스 동기화를 예시로 들어주셨을 때 워드 프로세서 프로그램의 맞춤법 검사 프로세스, 입력 내용을 화면에 출력하는 프로세스 등이 있다고 하셨는데 혹시 이것들은 프로세스가 아니라 스레드가 맞지 않는지 질문드리고 싶습니다."프로세스"는 "컴퓨터에서 연속적으로 실행되고 있는 프로그램"이고, "스레드"란 "프로세스 내에서 실행되는 여러 흐름의 단위"이니 예시로 들으신 워드 프로세서 안에서의 각종 것들은 스레드에 더 적합해보이는데 프로세스로 작성하신 이유가 있으실까요? 만약 프로세스라면, 그것이 "부모 프로세스"와 "자식 프로세스" 간의 관계로 작성하신 것인지도 궁금합니다. (자식 프로세스와 스레드의 차이의 예가 더 있으면 좋겠습니다.)
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
입출력 채널
1.입출력 채널이 일부 최신 입출력 장치 내부에 있다고 적혀 있는데요 바로 아래에는 입출력 채널이 있는 컴퓨터라고 적혀 있어서요 이게 입출력 장치에도 있을 수도 있고 컴퓨터에도 있을 수 있는 건가요? 2.423p 맨 윗줄 '키보드' > '하드디스크' 수정 필요합니다~유튜브 댓글에서 2쇄부터 수정 들어 가신다고 하셨는데제 책 4쇄인데 반영 안 되어서요~!혹시 다른 오타 수정해야 할 부분 리스트를 볼 수 있는 공간이 있을까요? 네트워크 책 언제쯤 나오나요,,, 강의 너무 좋아요감사합니다!
-
해결됨독하게 시작하는 C 프로그래밍
stdio.h 내 puts 함수 구현을 직접 볼 수 있나요?
안녕하세요 널널한개발자님 강의 재밌게 보고 있는 1인 입니다ㅎㅎ강사님께서 구현코드는 디버깅 과정에서 보여지지 않는다고 하셨는데, 볼 수 있는 방법이 있을까요? 모든 프로그래밍 언어의 기본이 되는 언어라고 배웠는데 실제구현을 볼 수 없다는 게 제 수준에서는 의아합니다. 찾아보니 소스파일 외의 구현코드를 찾기가 어렵고 챗지피티도 명쾌한 대답을 주지 못해서 질문 남깁니다. 여러번 질문했는데 항상 잘 답변해주셔서 감사드립니다~
-
해결됨독하게 시작하는 C 프로그래밍
getchar와 scanf의 차이
char ch = 0;scanf_s("%c", &ch, 1);printf("%d", ch); char ch = 0;ch = getchar();printf("%d", ch); 여기서 scanf_s와 getchar의 차이가 뭔가요?
-
해결됨독하게 시작하는 C 프로그래밍
memcpy 사용 후 free 함수 사용여부
memcpy 의 내부동작을 설명하실때 동적메모리할당 구문이 있었는대 이 부분은 free 로 안닫아줘도 괜찮은건가요??
-
해결됨독하게 시작하는 C 프로그래밍
qsort 함수에 관한 질문입니다.
stdlib에서 제공하는 qsort 함수qsort(void base, size_t width, int(*compare)(const void* key, const void* element))에서 compare부분이 비교함수를 가리키는 함수 포인터라고 알고있습니다.그렇다면,qsort(aList, 5, sizeof(int), *myCompare); 같이 넣지 않고qsort(aList, 5, sizeof(int), myCompare); 처럼 넣는 이유가 뭔가요?
-
해결됨독하게 시작하는 C 프로그래밍
함수 포인터 강의에서 질문이 있습니다.
int(*pfGetMax)(int,int,int) = GetMax; 를 통해함수 포인터 선언 정의를 동시에 하고printf("MAX: %d\n", pfGetMax(1,3,2)); 를 하셨는데함수 포인터를 사용하여 GetMax 함수를 호출하는 과정에서pfGetMax(1,3,2)를 사용하셨는데 이 표현이 이해가 가지 않았습니다.포인터의 간접지정을 통해서 값을 가져와야 한다고 생각했는데(*pfGetMax)(1,3,2) 처럼 해야하는 것이 아닌가요?
-
해결됨독하게 시작하는 C 프로그래밍
[필수 실습 문제] '*' 출력 놀이 응용
if문을 쓰는 것과 아래 코드처럼 for문만 쓰는 것 중에 어느 코드가 더 효율적인가요?for (int i = 1; i <= 5; i++) { for (int j = 0; j < 5 - i; j++) { printf(" "); } for (int j = 0; j < i; j++) { printf("* "); } puts("");}
-
해결됨독하게 시작하는 C 프로그래밍
[필수 실습 문제] 버스 요금 계산
안녕하세요 강사님 [필수 실습 문제] 버스 요금 계산 관련 질문 있습니다.저는 나이가 20살 미만이면 기본 버스 요금 1000원의 75% 적용한다는 구문을printf 함수 안에 input*0.75 이렇게 적었는데요이렇게 적으면 최종 요금이 0이 나오더라구요이렇게 되는 이유가 최종 요금을 나타내는 형식문자가 %d인데 *0.75 를 곱해서 일어난 것 같은데전체적으로 보면 input 0.75 = 1000 * 0.75 =750 의 정수형식이라서 상관없을 거 같은데 형식 문자가 %d 정수형이면 그 값을 나타내는 변수에도 정수만 들어가야하나요?
-
미해결자료구조 기본 개념 정리
자료구조 기본 개념 정리 - 순환큐 강의 내용 질문
자료구조 기본 개념 정리 - 순환큐이 강의에서 7:20 경에 self.head를 4라고 강사님이 말씀하시는데 영상처럼 초록색 화살표가 찍힌 0을 가리켜야 맞는거 아닌가요? 제가 이해를 잘못하고 있는지 강사님이 잘못 말씀하신건지 의문입니다.코드는 enqueue 메서드 안에 if((self.tail+1) % self.k == self.head): 이부분 설명하는 데입니다.
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
새로운 입출력장치가 연결되었을 때 인터럽트
입출력 장치가 새로 연결되었을 때, 이 입출력장치의 인터럽트에 관한 정보들을 어떻게 알 수 있는지 궁금합니다.입출력장치에 맞는 ISR을 운영체제가 이미 가지고 있어서 이것을 연결해주는 건가요? 그렇다면 운영체제는 처음부터 여러가지 장치와 상황에 대비하여 ISR을 가지고 있는 걸까요?새로운 입출력장치가 입력되어서 인터럽트 벡터 테이블의 값에 변동이 생길 수도 있나요?
-
미해결IT입문자를 위한 전반적인 개념 정리
수료증 관련
수강완료시 수료증은 없나요?
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
Ram의 기능
강의 제목 : RAM의 특징과 종류 예전에 초반 강의에선RAM을 현재 실행하고있는 프로그램 즉, 프로세스의 데이터와 명령어를 저장한다고 들었습니다. 근데 여기 강의에서는 RAM은 CPU가 실행할 데이터를 저장하는 공간이라고 하셧는데 그럼 RAM은 현재 실행하고있는 데이터와 명령어를 저장하는 기능과 실행"할" 데이터와 명령어를 저장하는 기능 두가지가 있는건가요?
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
페이지폴트 횟수 질문입니다
안녕하세요 선생님 강의 너무나 잘 듣고 있습니다.14-3장 강의 내용이였던 페이지 폴트 횟수에 대해서 질문 있습니다.예를 들어 강의 시간으로 14:56에 나오는 최적 페이지 교체 알고리즘 예시화면에서페이지 폴트가 일어난다는 것은 참조하고자 하는 페이지가 없을 때 일어나는 것이라면 5를 찾을 때, 4를 찾을 때의 두 번 뿐만 아니라맨 처음 2, 3, 1을 프레임에서 찾을 때도 프레임에 페이지가 없으니 페이지 폴트가 일어나서 총 다섯 번의 페이지 폴트가 발생했다고 생각해야 하지 않나 궁금해서 질문드립니다. 감사합니다.
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
오버플로우
연산결과가 연산을 담을수 있는 레지스터에 비해 너무 커지면 플래그에 담는다고 하셨는데그림상 플래그 레지스터에 결과값을 담는다는걸까요?아니면 오버플로우 플래그를 1로 내보낸다는걸까요?