묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
운영체제 페이징교체 알고리즘 OPT 13:30 질문 드립니다.
안녕하세요. 운영체제 페이징교체 알고리즘 OPT 13:30 질문 드립니다. 문자열 보면 4도 있는것 같은데 안쓰는 이유가 있을까요?
-
미해결FreeRTOS 프로그래밍
포팅 부탁드립니다!
-------------------------------------------------- 사용하고 싶은 ST 보드명: NUCLEO-U5A5ZJ-Q (STM32U5A5ZJ)- 사용하시는 컴파일러(stm32cubeide) 버젼: 1.16.0-------------------------------------------------안녕하세요 선생님,강의 수강하면서 포팅도 직접 해볼 예정인데, 선생님께서 포팅해주신 결과물이 있다면 비교하면서 피드백하기가 수월할 듯 하여 요청드립니다.지난번 요청했다가 취소했는데, 이 보드로 진행해보려 합니다.미리 감사의 말씀 먼저 드리겠습니다!
-
미해결그림으로 쉽게 배우는 운영체제
MLFQ설명에서 P1도 컨텍스트 스위칭이 발생하는건가요??
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 컨텍스트 스위칭은 다른 프로세스를 실행시킬 때 발생한다고 알고있는데 MLFQ설명의 P1의 경우는 타임슬라이스를 1초로 해도 컨텍스트 스위칭이 발생하게 되는건가요?? 같은 프로세스의 작업이라 생각해서 발생하지 않는줄 알았습니다..
-
해결됨그림으로 쉽게 배우는 운영체제
임계구역 궁금증
-수업을 듣다가 궁금한 점이 생겨서 문의드립니다.임계구역에은 하나의 프로세스만 진입하고, 최대한 빠르게 나와야 된다고 말씀하셨는데, 만약 임계구역 안에서 컨텍스트 스위칭이 이루어질 경우에는 어떻게 되나요? 해당 프로세스가 대기상태이지만 여전히 임계구역에서 나온건 아니니, 다른 프로세스는 진입할 수 없나요? 만약 진입할 수 없는 경우에는 이 임계구역에 대한 요청이 쌓이게될텐데 이런 경우 어떻게 해결해야하나요?
-
미해결CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
가상메모리 개념에 대해서
강사님의 가상메모리 강의를 듣고, 가상메모리는 무엇인가에 대해 대략적인 내용을 학습할 수 있었습니다. 이에 제가 이해한 개념이 올바른 내용인지 확인 부탁드리겠습니다. 최초에 저는 가상메모리에 대해 이해가지 않았던 부분이 있었습니다. 가상메모리는 실제 메모리보다 더 크게 보이게하는 기술이라는 맥락으로 설명을 주셨던 거 같습니다. 여기서 저는, "그러면 그 가상메모리는 어디에서 오는 건데?" 였습니다. 메모리라 하면, 주기억장치든 보조기억장치든 그 장치들이 실존하는 것이며, 용량도 정해져 있는데, 도대체 이 가상메모리는 어떤 메모리를 기반으로 제공되는 것인가. 이러한 생각이 드니, 어떻게 이해하려고 해도 쉽게 이해가 가지 않았습니다. 이에 구글링과 다른 영상 자료를 보며 이해에 도달했는데, 내용은 다음과 같습니다. 프로그램이 RAM 위에 올라가면 프로세스가 된다. (이는 강사님께서 말씀해주신 내용으로, 해당 개념을 기반으로 이해를 도모했습니다.)OS 는 프로세스에게 가상 주소 공간을 제공한다. (32biit 기준으로 4gb, 이때 가상 주소 공간과 가상 메모리 공간은 다른 개념)프로세스 내의 가상 주소 공간은 페이지 단위로 나눠지고, 논리 주소가 부여되며, stack 이나 heap, code 등이 해당 공간에 할당된다.이때 사용되는 페이지만이 RAM 의 프레임과 매핑되며, 사용되지 않는 페이지는 보조기억장치에 저장된다.이에 프로세스의 가상 주소 공간의 크기는 32bit 기준 4gb 지만, 실제로 운용되는 것은 1mb ~ 2mb 이다. (예를 들어) 이때 "가상 메모리는 실제 메모리보다 더 크게 보이게 하는 기술이다" 라고 말씀하신 이유는 실제 프로세스는 크기가 4gb 라고 치고, 불필요한 부분까지 모두 RAM 위에서 자리를 잡고 있다면, 소수의 프로세스 밖에 운용하지 못할 것이다.-> 이에 필요한 부분만 RAM 에 올림으로써 자원의 낭비를 줄이고, 많은 프로세스를 운용하게 할 수 있게 하기 때문이라고 이해를 했습니다. 추가적으로 이해한 내용으로는 가상메모리를 사용하는 이유로써,임의의 프로세스가 죽었을 때 OS 에서 이를 감지하여, 해당 프로세스의 페이지와 매핑된 프레임을 반환한다.이를 통해 다른 프로세스는 반환된 공간을 사용할 수 있게 된다.만일 가상메모리 기법이 존재하지 않는다면, 프로세스가 죽어도 RAM 위에서 자리를 차지할 것이며, 또 다른 프로세스들이 계속해서 죽어갈 때 끝내 RAM 에는 자리가 존재하지 않을 것이다. 위 내용과 같이 이해를 했으며, 최종적으로 가상메모리를 정의한다면, "가상 주소 공간을 주 기억장치와 보조 기억 장치 사이에서 매핑하여 효율적으로 메모리를 관리하는 기법이다" 혹시 제가 이해한 부분에 대해서 잘못된 점이나 보완할만한 점이 있다면, 조언을 부탁드리고 싶습니다.
-
미해결FreeRTOS 프로그래밍
포팅 부탁드립니다!
-------------------------------------------------- 사용하고 싶은 ST 보드명: NUCLEO-H7S3L8 (STM32H7S3L8H6)- 사용하시는 컴파일러(stm32cubeide) 버젼: 1.16.0-------------------------------------------------안녕하세요 선생님,강의 수강하면서 포팅도 직접 해볼 예정인데, 선생님께서 포팅해주신 결과물이 있다면 비교하면서 피드백하기가 수월할 듯 하여 요청드립니다.차후에는 CubeIDE 말고 CMake 환경도 직접 구축하여 빌드 및 플래싱해보는 것이 목표입니다.미리 감사의 말씀 먼저 드리겠습니다!
-
해결됨넓고 얕게 외워서 컴공 전공자 되기
강의의 대한 추가질문
해당 강의 User mode와 Kernel mode 마지막으로 가상화의 대한 작동과정을 설명해주셨는데 이걸 좀 더 자세하게 공부하기 위해선 운영체제를 공부하면 되는걸까요?
-
미해결리눅스 커널의 구조와 원리: 인터럽트 [저자 직강 1부-5]
인터럽트 처리 순서
Big Picture 사진을 보면 인터럽트 발생시 GIC에서 우선적으로 처리한 후 익셉션 핸들러가 실행되는 걸로 나와있는데,인터럽트 처리 콜스택을 보면 익셉션 핸들러가 먼저 실행되고 gic 관련 핸들러 함수가 호출되는 것 같습니다. 둘이 순서가 왜 다른지 궁금합니다!
-
해결됨FreeRTOS 프로그래밍
펌웨어 설계시 RTOS 적용 여부 질문
안녕하세요몇년전에 회사에서 진행중인 프로젝트에 RTOS를 적용하였다가 퍼포먼스를 만족시키지 못해서펌웨어로 다시 기능 똑같이 만들어서 해보니까 성능을 만족해서펌웨어로 변경해서 작업을 진행한적이 있었는데 메인 기능은 상위제어기로부터 1ms 주기로 패킷을 수신받으면 100us 내로 응답해야하는 조건에 CRC 체크도 해야하는 상황이었고 통신 기능 뿐만아니라 다른 기능에서 사용하고 있는 프리페럴이 많아서 통신 기능외에 주기적으로 us단위의 인터럽트가 많이 발생되는 상황이였구요.RTOS로 만들었던 SW에서는 기본적으로 각각 프리페럴을 담당하는 TASK를 두고 설계를 했었는데RTOS에서는 위에 나왔던 통신주기를 ISR에서 TASK로 이벤트 전달하는과정에서 리얼타임을 만족시킬수 없었습니다.그래서 RTOS를제거하고 그냥 펌웨어로 만들어서 구조는 똑같이하고멀티태스킹을 인터럽트 처리했는데 성능이 만족스럽게 나왔습니다. 제가 생각한 바로는RTOS가 올라간 시스템에서는 기본적으로 스케줄링하는 커널이 들어가서 기본적으로 자원점유도 하고거기에 인터럽트도 관여되면 컨택스트 스위칭이 자주일어나서 오버헤드가 더 심해질수있다.펌웨어는 그냥 풀로 돌면서 인터럽트로 인한 크리티컬 섹션만 신경쓰면 되기에 성능을 만족한게 아닐까 하는 생각이 듭니다.물론 제가 RTOS에 대해 아는게 없어서 SW가 요구사항을 만족시킬수 없었던것일수도 있지만컨택스트 스위칭으로 인한 오버헤드가 리얼타임에 영향을 미치는 가혹한환경이라면 베어메탈 펌웨어를 사용하는게 맞다고 느꼈습니다. 강의에서도 말씀하셨다시피 ISR로도 멀티태스킹이 된다면 RTOS를 적용하지 않아도 된다고 하셨는데SW가 복잡해진다면 FreeRTOS API를 사용할수있으니 유지보수 측면이나 TASK간 동기화에 있어서 편리하다고 생각이 듭니다. 제 질문은펌웨어를 설계할때 RTOS를 적용할지 아니면 베어메탈 펌웨어로 가냐 적용여부를 어떻게 판별해야할까요?일단 저는 인터럽트가 많이 일어나는 시스템에서는 RTOS가 성능에 영향이 있다고 느껴집니다.
-
해결됨그림으로 쉽게 배우는 운영체제
프로그램과 프로세스 강의를 듣던중 질문입니다!
프로그램이 있고, 프로그램이 메모리에 올라간것을 프로세스라고 하는 것을 배웠습니다. 그런데, 프로세스를 설명해주실때Code, Data, Heap, Stack을 설명 해주셨고, c언어 컴파일 예제를 보여주시면서 test.exe가 생성되는 과정을 설명해주셨습니다. 그런데 제가 좀 헷갈리는게 자바 실행파일은 어떻게 설명할 수 있을까요?자바는 Code, Data, Heap, Stack이 아니라, method영역이라던지 다른 영역이 있는 것으로 알고있는데, 자바로 만든 프로그램도 code, data, heap, stack을 가지나요?? 그러면 method 영역이라던지 이건 어떻게 되는걸까요.... 자바로 만든 .exe 실행파일과 c언어로 만든 .exe 실행 파일은 메모리 구조가 다른건가요??? 강의 설명은 c언어일때만 성립하는 것인가요..?
-
해결됨넓고 얕게 외워서 컴공 전공자 되기
컴퓨터가 글자를 다루는 방법 -> 코드체계 질문
안녕하세요, 컴퓨터에서 글자를 사용하기 위해 글자와 대응이 되는 숫자를 매핑해서 사용하는 코드체계가 있고 이 코드체계를 표준 시킨게 ASCII라는 것도 이해가 됐습니다만.컴퓨터는 이 코드체계라는 걸 이해할 수 없고 이 코드체계에 따라서 65라는 값이 들어왔을 때 대문자 'A'을 문자로써 출력할건지 아니면 숫자 65라는 값을 출력할건지의 대한 기준은 결국 사람이 소프트웨어를 만들어서 컴퓨터에 내장하는 방법밖에 없잖아요?여기서 궁금증이 생겼습니다. 이 코드체계 소프트웨어를 만들어서 탑재 시키는건 메인보드 등 컴퓨터를 만드는 회사인가요?아니면 운영체제를 개발하는 곳인가요? 아니면 컴파일러를 만드는 사람들인가요?컴퓨터 부팅 과정에서 컴퓨터 전공이 아니더라도 알 수 있는 BIOS진입이라던가 보이는 영어문자들을 보면 컴퓨터를 만들때 탑재 시킨 것 같긴 한데.. 아니면 컴퓨터를 만들때든, 운영체제든, 컴파일러든 각 모든 과정에서 표준 코드체계를 탑재시켜야 하는건가요?
-
미해결CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
혹시 포트폴리오 이벤트 아직 진행 중이실까요..?
안녕하세요 선생님 🙂 커뮤니티를 보니 며칠 전에 포트폴리오 첨삭 이벤트를 진행하신 것 같더라구요.혹시 아직 진행 중이신지 알고싶습니다 ^^ 감사합니다 :)
-
해결됨넓고 얕게 외워서 컴공 전공자 되기
진법변환 개념정리
2진수 -> 16진수"1100 0010" 라는 2진수를 16진수로 변환하기 위해선 16진수 한자리는 4비트를 사용하니까 4비트씩 분리해서1100 = C / 0010 = 2니까 "0xC2"16진수 -> 2진수"0xE0" 라는 16진수를 2진수로 변환하기 위해선 각 자리마다 2진수로 변환 해준다음 나열E = 1110 / 0 = 0000 즉 "1110 0000"2진수 -> 10진수"0010 0101"을 10진수로 변환하기 위해선 알려주신 방법대로(2^5 * 1) + (2^2 * 1) + (2^0 * 1) = 37이것을 응용해서16진수 -> 10진수"0xF4" = (16^1 * 15) + (16^0 * 4) = 244이런 식으로 각각 변환하는게 맞을까요?
-
해결됨기출로 대비하는 개발자 전공면접 [CS 완전정복]
질문이있습니다 선생님!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 페이징을 쓰게되면 별도의 페이지 테이블로 논리와 물리 메모리를 서로 연결시켜주는것으로 이해를했는데요, 그럼 페이징을 쓰지 않을때 기본적으로는 프로세스에 있는 메모리들이 물리 메모리에 단순히 연속할당되는 형태가 디폴트인건가요?
-
해결됨기출로 대비하는 개발자 전공면접 [CS 완전정복]
질문이있습니다 선생님!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 세마포어의 s값이 2 이상일경우에는자원에 동시에 접근하여 발생하는 동시성문제는 여전히 남아있을 것 같은데요, 바이너리 세마포어를 활용해 뮤텍스(비관 락 처럼)와 같게 활용하는것 까지는 이해가 되는데한번에 2 이상의 정수형 인자를 전달해줄 경우에는 동시성문제를 어떻게 해결하는건가용??
-
해결됨기출로 대비하는 개발자 전공면접 [CS 완전정복]
질문이 있습니다 선생님!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 멀티 프로세스와 멀티 스레드의 차이점과 작동방식을 대략적으로 이해했는데요, 실제로 어떤 상황에서 멀티프로세스를 쓸껀지 멀티 쓰레드를 쓸껀지 결정하는지 상상이 안가서요, 실제 상황을 예시로 들어볼 수 있을까요!??
-
미해결기출로 대비하는 개발자 전공면접 [CS 완전정복]
질문이 있습니다 선생님!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 위 이미지를 보던중 궁금한점이있습니다.해시슬롯에 데이터셋을 바로 저장하는게 아니라 노드를 통해 계속 이어나가는 방식이 세퍼레이트 체이닝이라고 이해를 했습니다.(링크드 리스트)그럼 이미지에서 해시테이블 슬롯에 저장되는 값은 링크드리스트의 헤드 포인터가 되는것인지 궁금합니다.연결된 링크드리스트에 추가된다 에서 '연결된'이 어떤 의미인지 궁금해서요!
-
미해결기출로 대비하는 개발자 전공면접 [CS 완전정복]
질문이있습니다 선생님!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.이미지와같이 맥스힙일때 190이 push되어 맨 아래 즉 말단 노드에 일단 추가되고 부모노드와 비교를 통해 스왑되다가 190이 위 이미지와같이 위치해있는 상황일떄150 노드 하위에 60과 100이 존재하는데요, 150노드는 90과 같은 위치에 존재하는데 100이 90보다 큰값이어도 서로 스왑할 필요는 없이 저대로 존재하는게 맞는건가요?!
-
미해결기출로 대비하는 개발자 전공면접 [CS 완전정복]
질문이 있습니다 선생님!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 링크드리스트는 런타임에서 새로운 노드가 추가될때 힙 영역에 메모리 얼로케이션이 되는건 알겠는데 만약 이미 정의되어있는 링크드리스트인 경우에는 어레이와 똑같이 스택영역에 저장되는건가요? 컴파일단계에서 존재하는 링크드리스트는 어레이와같이 stack영역에 저장되는데 실행단계에서 노드가 추가된 값들만 heap에 올라가는건지 궁금합니다.
-
미해결기출로 대비하는 개발자 전공면접 [CS 완전정복]
질문이 있습니다 선생님!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 이 부분에서 삽입삭제가 O(1)인 이유는 알겠는데요,한가지 궁금한게있습니다! 링크르리스트는 논리적으로 연결되어있어 랜덤엑세스가 안되는것으로 이해를 했는데요, 만약 n이라는 숫자의 뒤에 m이라는 숫자를 추가하거나 삭제를 해야할 경우 head에서 부터 시작하여 n의 위치를 찾기위한 탐색시간이 추가로 들어가지는 않는건가요!?