무료
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
인터럽트
프로그램 입출력 방식에서는 전송률이 높은 CPU가 전송률이 낮은 장치 컨트롤러의 상태 레지스터를 계속 확인을 해야 한다는 점이 효율에 있어 문제를 일으킨다고 했습니다.인터럽트 기반 입출력 방식에서는 인터럽트 신호가 발생할 때만 CPU의 관심을 끌어서 이러한 문제가 없다고 했고요.그런데 인터럽트 신호가 발생했는지를 확인하기 위해 CPU는 매 명령어 사이클에서 fetch하기 전에 인터럽트 레지스터를 확인하는 과정을 거치는데, 이러면 프로그램 입출력 방식에서 장치 컨트롤러의 상태 레지스터를 계속 확인하는 것과 별반 다른 점이 없는 것 아닌가요? 어떤 점이 개선이 되었다는 건지 잘 이해가 가지 않습니다.학부 수업을 듣고 제대로 이해가 가지 않아 이 강의를 찾아서 다시 공부하고 있는데, 여전히 헷갈려서 질문 올립니다.
- 해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
원형 대기 조건을 없애는 예시 중 질문드립니다.
식사하는 철학자 문제는1. 계속 생각을 하다가 왼쪽 포크를 든다.2. 계속 생각을 하다가 오른쪽 포크를 든다.3. 왼쪽과 오른쪽 포크를 모두 집어들면 정해진 시간동안 식사를 한다.로 이루어져 2개의 포크라는 자원이 전부 충족되어야 하는 문제로 이해하였습니다. 그런데 원형 대기 조건을 없애는 예시 중 철학자들이 모두 포크를 들어도 괜찮다는 부분이 있습니다.이 경우도 이전 식사하는 철학자 문제와 동일하게 결국 각자에게 할당된 포크(자원)이 1개씩만 할당되기에 결국 문제가 해결되지 않는게 아닌지 생각됩니다. 이 부분에 대해서 조금 더 설명해 주실수 있으실까요?
- 해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
메인보드는 왜 핵심부품이 아닐까요?
분류의 기준이 어떻게 되는지 궁금합니다.컴퓨터 조립할 때도 cpu/메인보드/램/하드 를 우선 구매하고,메인보드가 없으면 오히려 이 부품들을 연결할 수가 없는데 그렇다면 입출력장치가 빠지고 메인보드가 들어가야되는거 아닌가? 라는 의문이 있습니다.입출력장치는 주변기기 라고도 하고, 저 4개 핵심부품이 다 있더라도 메인보드가 없으면 연결할 수가 없는데 어떻게 메인보드보다 입출력장치가 핵심부품으로 포함됐는지 분류한 기준이 있었을 텐데, 그 기준이 어떻게 되는지 알고 싶습니다.
- 해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
프로세스
프로세스란, 프로그램이 실행중인 상태이며, 이 프로그램이 실행이되는과정이 제가 생각하고있는게 맞는지 궁금하여 글 남겨드립니다먼저 프로그램은 실행되기전까지는 데이터 덩어리에 불과하며,실행되지 않는 프로그램은 보조기억장치(하드디스크)쪽에 보관되어있다가 프로그램이 메모리에 적재된 후CPU가 메모리에 적재되어있는 해당 프로그램에 명령어와 데이터를 가져와 연산을 하면 프로그램이 실행되어 프로세스가 되는것인가요? 지금 헷갈리는것이 프로그램이 메모리에 적재되어 실행이되면 프로세스가 된다고하셧는데이 "실행" 이라는 부분이 너무 애매해서 헷갈립니다CPU를 거쳐서 "실행"이된다는건지 아니면 메모리에 적재가되면 "실행"이 되는건지 궁금하여 글남겨드립니다. 그리고 제가 작성한 부분중에 잘못알고있는 부분이 있는건지도 확인차 글 남겨드립니다.
- 해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
프로세스 상태
프로세스란 실행중인 프로그램이고 좀더 정확히 말하면 보조기억장치에 적재되어있다가 프로그램이 메모리에 적재되고 실행이 되면 이떄 이 프로그램은 프로세스라고 하는걸로 알고있습니다그리고 이 과정을 프로세스가 생성된다고 말하고있다고 하셧습니다 PCB는 이 프로세스가 생성될때 커널영역에 저장된다고 하셧는데 프로세스 상태에서 생성상태가 이해가 안갑니다프로그램이 실행이(=프로세스) 안되는데도 메모리에 적재되어 PCB를 할당 받을수가잇나요? 프로그램이 실행되었다는건 메모리에 적재된 상태고 PCB도 할당 받은 상태인데"생성 상태" 라는 단어가 아직 실행중이지 않는 상태라는 뜻인데 이 부분이 말이 안된다고 생각해서요애초에PCB는 프로세스가 생성될떄 같이 만들어지는 애인데말씀하신 내용을 들어오면생성상태는 프로그램이 실행중인 상태가 아니라 그냥 메모리에 적재되어있는 상태인거 아닌가요?그럼 프로세스가 아닌 단순한 프로그램이 메모리에 적재되어있는상태가 아닌지 , 그리고 그상태가 맞다면 PCB는 아직 할당되지 않는게 맞는게 아닌가요?
- 해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
운영체제와 프로그램에 관계
일반적인 프로그램이 하드웨어에 접근할 수 없기때문에운영체제를 통해서 접근이 가능하다고 말씀하셧는데 조금 햇갈려서 글남겨드립니다."응용 프로그램"이 운영체제라는 길을 통해서 하드웨어에 접근을 하는것인가요?아니면 응용 프로그램이 운영체제에게 부탁을하면 "운영체제"가 대신 하드웨어에 접근을 하는건가요?
- 해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
부모 프로세스와 자식 프로세스
최초의 프로세스가 첫 번째 자식 프로세스를 생성하고, 첫 번째 자식 프로세스가 두 번째 자식 프로세스를 생성하면두 번째 자식 프로세스의 부모 프로세스는 무엇인가요?첫 번째 자식 프로세스 인가요 아니면 최초의 프로세스 인가요 아니면 둘다인가요?
- 해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
질문이 여러가지가 있습니다 ㅠㅠ
1.어셈블리코드의 경우에는 CPU의 명령어라고 하셨는데 그렇다면 CPU에 의존적인 상황인데 왜 컴파일러마다 어셈블리코드가 달라질수있는건가요? 2. 같은 컴파일러로 다른 어셈블리코드가 나온다는거는 운영체제가 해당 CPU에 맞는 어셈블리변환을 해주는거 같은데 맞을까요? 3.RISC의 경우에는 어차피 연산 코드부분의 크기가 같기 때문에 해당 부분의 비트만 해석하면되지만CISC의 경우에는 크기가 유동적이고 데이터도 바이트코드 연산코드도 같은 바이트 코드라면 CPU는 해당부분을 어떻게 구분하는지 궁금합니다 ! 4.명령어의 크기는 일반적으로 워드 크기와 같을까요? 5.메모리 주소 하나당 크기는 메모리에의해서 결정지어지는건가요? 아니면 CPU에 의해서 결정지어지는건가요? 6.ALU가 계산을 할때 레지스터가 피연산자를 제공해주고 ALU는 계산된값을 레지스터에 담는다해당 부분에서 제어장치의 제어신호없이 레지스터나 ALU가 각각 전달을 하는건가요? 아니면 모든 데이터 전달과정에는 반드시 제어장치의 제어신호가 포함된다고 보면될까요? 7. ALU계산결과가 레지스터값보다 큰경우엔 어떻게 되나요? 8.명령어 레지스터와 메모리버퍼 레지스터의 차이가 명확하게 이해가 가지않습니다 ..메모리 버퍼는 데이터 버스를 통해서 데이터를 받긴하지만 그대로 명령어 레지스터로 전달을 해준다면 메모리버퍼레지스터에서 바로 명령어를 전달해줘도 되는데 두개가 구분되서 존재한다는거는 명확한 이유가 있을꺼같은데 잘 모르겠습니다 9.직접 주소 지정방식의 경우에는 ex)기존 오퍼랜드에 1바이트데이터를 저장할수있던것을메모리 주소 참조를 통해 2바이트를 저장할수있기 때문에 데이터 크기가 커진다는게 이해가 갑니다.간접주소 지정방식의 경우에는 하지만 이런식으로 데이터 크기자체가 커지는게 아닌명령어 한개당 참조할수있는 주소가 많아지는거같은데 이게 맞을까요? 스택주소 지정방식에서의 스택은 프로세스 하나당의 스택 영역이 아닌 메모리에서 스택범위가 따로존재하는건가요? 그리고 검색해보니 해당부분이 커널영역이라고 하던데 맞을까요?그리고 현재 대부분의 컴퓨터에는 MMU를 활용한 베이스지정레지스터 방식과 스택 방식이 사용이 되나요?명령어 파이프라이닝에서 만약에 실행 단계 ALU계산단계에서 ALU가 한클럭에 끝낼수없는 복잡한 계산의 경우에는 인출 해석 여러번의 실행후 저장의 루틴인가요? 아니면 여러번의 인출 해석 실행 저장의 루틴 방식일까요? 그리고 만약 슈퍼스칼라를 사용하게되면 같은 클럭내에서 실행이 겹치기떄문에 ALU를 명령어 2개가 사용이 되는데 구조적위험이 반드시 생겨서 아예 못할꺼같은데 아주 조금의 시간차를 동시에 실행하는것처럼 파이프라이닝을 구성하나요?
- 해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
메모리 쓰기 관련해서 질문있습니다.
메모리 쓰기를 할때에는 순서가 1.데이터 버스2.주소버스 3.제어버스 라고 되어있는데CPU에서 메모리로 데이터버스를 통한 데이터 전송이 주소버스를 통한 주소 전송보다 더 빨리되는데 메모리에는 해당주소가 확정되기전엔 어디에 있는건가요?
- 해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
스택 영역과 힙 영역의 데이터 인출 순서
안녕하세요~!프로세스 개요 관련 질문에 대한 답변을 보다 궁금한 점이 있어 질문드립니다.아래 링크는 '메모리의 구조 (코드, 데이터, 힙, 스택 영역)' 에 대한 글인데 답변에 달려있었던 링크입니다.https://all-young.tistory.com/17힙과 스택에 대한 내용 중 데이터 인출 순서를 다음과 같이 정리가 되어 있었습니다.힙: 선입선출스택: 후입선출그런데 해당 글의 댓글을 보니 '힙영역은 사용자가 메모리를 직접 할당하고 해제할 수 있다는 점에서 이미 논리적으로 "순서가 정해졌다(FIFO)" 라는 말이 과연 성립할 수 있을까라는 의문이 생기기도 합니다.'고 되어 있다고 하고 영어로 검색하면 완전이중트리에 대한 설명이 나온다고 합니다.어떤 말이 맞는 건지 알 수 있을까요?
- 해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
안녕하세요. 주소지정방식에 대해 질문합니다.
직접 주소 지정 방식보다 간접 주소 지정 방식이 표현할 수 있는 유효 주소의 범위가 더 넓어졌다고 언급(3-2강의 19분 언저리 )해주셨는데요. 유효 주소의 주소나 유효 주소나 둘 다 주소를 표현하기 때문에 표현 범위는 같은 것 아닌가요? 연산 코드의 범위가 달라지지 않았는데 표현할 수 있는 범위가 넓어졌다는 것이 이해가 가지 않습니다!
- 해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
파이프라이닝 기법 슈퍼스칼라
명령어 파이프라인 기법의 원리는코어에 쓰레드가 여러개 있어서 가능한건가요?명령어 1,2,3,4가 동시에 겹쳐서 실행되려면1코어에 쓰레드가 4개여야하는거죠?만약 위 설명이 맞다고 하면결국 시피유의 하드웨어 쓰레드를 많이 만들어야 한다는건데결국 시피유 성능을 높이자는 얘기인거죠?슈퍼스칼라 기법슈퍼스칼라는 코어가 단일이 아니라 멀티이니까 여러개의 파이프라인을 이용가능한거죠?
- 해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
데이터베이스 강의
민철님혹시 네트워크말고데이터베이스 강의도 나오나요?ㅎㅎ..네트워크는 곧 나온다고하셔서 엄청기대중인데 4월중으로는 나올까요?
- 해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
pdf, ppt
현재 이 강의 ppt나 pdf 자료는 없을까요?ㅠㅠ
- 해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
대기상태
프로세스가 입출력 장치를 사용하는 경우입출력 작업이 끝날때까지 기다려야 한다고 하셨는데,예를들어 워드 프로그램을 실행중에 프린트를 출력버튼을 누르고바로 워드 프로로그램을 이어서 실행할수있지 않나요?그런데 왜 대기상태로 접어든다는걸까요?ㅠ프린트물 완료되었다는 입출력 알림이 올때까지 대기 상태로 간다는게 이해가 안갑니다ㅠㅜ 아니면 입출력에 대한 인터럽트가 발생해 인터럽트 서비스 루틴을 완료할때까지 기존 수행하던 작업을 대기 상태로 둔다는걸까요? 그렇게 본다면..프린트 버튼을 누르고 보통 1초후(아직 출력물은 나오지않았지만)에 바로 워드프로그램 사용이 가능한데, 사용가능할때 이미 서비스 루틴은 완료되어 알림을 받은상태일까요?
- 해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
네트워크 책
혼자 배우는 네트워크강의는 안나오나요ㅠㅠ책말고 강의도 해주세요 ㅠㅠ
- 해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
강의안 질문
혹시 강의에서 사용하시는 ppt 자료는 받아볼 수 없을까요..?강의 잘보고있습니다!
- 해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
원형 대기 제거 = 점유와 대기 제거인지 궁금합니다 (마지막 프로세스에 한해)
안녕하세요. 강의에서 보여주셨던 "원형 대기를 없앤 경우"가 (마지막 프로세스에 한해) 점유와 대기를 없애는 것과 동일한 것인지 궁금합니다. 원형 대기를 없애기 전에는 모든 철학자 (프로세스)가 왼쪽 포크 (자원)를 들고 있을 시 "프로세스가 자원을 들고 있으면서 다른 자원을 대기하는 경우"가 전부 발생하기 때문에 교착 상태가 발생하고, 원형 대기를 없앤 경우 (책에서 작성하신 오름차순 등)에는 모든 철학자 (프로세스)가 왼쪽 포크를 들고 있더라도 마지막 철학자가 대기를 하지 않게 되므로 자신이 왼쪽 포크를 놓으면 문제 없이 다른 철학자가 식사를 할 수 있는 것과 같은 흐름일까요?
- 해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
인터럽트 처리와 문맥교환의 차이
하드웨어 인터럽트 발생시 인터럽트를 처리하기 위해 레지스터에 저장된 데이터는 스택에 저장되는 것으로 알고 있습니다. 프로세스 문맥교환시 레지스터 값은 PCB에 백업되는 것으로 알고 있습니다. PCB 는 커널영역에서 생성되고 관리되는 것으로 알고 있습니다. 저는 하드웨어 인터럽트 발생시 레지스터값을 임시보관하는 위치인 스택이 사용자 영역의 스택으로 생각했었습니다. 그런데 커널 스택이라는 내용을 보아서요. 커널 스택이 맞나요?
- 해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
동기화 기법과 그냥 반복문 돌리는 것의 차이
생산자 소비자 문제는 상품의 개수라는 전역 변수이자 공유 자원이 핵심이고, 이를 위해서 상호배제를 위한 동기화가 필요합니다.하지만 2회독을 하면서,예를들어 생산 1000번, 소비 1000번 한다고 했을 때그냥 생산 반복문 1000번, 소비 반복문 1000번 돌리면 상품의 개수가 0이 되어서 문제가 없지 않나..?그렇다면 동기화 기법이 왜 필요하지..? 라는 의문점이 들었습니다.한번 더 생각해보면 실제로 현실에서는 생산 1000번, 소비 1000번이 순서대로 일어나지 않으니까 동기화 기법이 필요한건가..?라는 나름의 해답도 떠올랐는데,둘의 차이를 어떻게 봐야 할까요?