inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

Working set 기반 프레임 할당 방식에 대한 질문입니다.

해결됨

개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제

안녕하세요 강사님 유익한 강의 감사히 듣고 있습니다. 이번에 가상 메모리의 프레임 할당 방식에 대한 강의를 듣던 도중 working set 기만 모델에 대해 질문이 생겼습니다. 사실 동적 할당 방식에 대한 질문이라고 볼 수도 있을 것 같은데, working set의 경우, 일정 시간을 두고, 참조되는 페이지를 통해 working set을 구성하여 프로세스에 프레임을 할당한다고 하셨습니다. 그렇다면, 해당 프로세스가 가장 처음 실행이 될 때는 해당 프로세스에 대한 프레임 할당이 어떤식으로 이루어 지는지 궁금합니다. 정적 할당의 경우에는 실행하기 전, 프로세스의 크기를 통해 미리 결정하고 들어가지만, 동적 할당의 경우에는 해당 프로세스를 실행하여 사용되는 프레임의 수를 통해 프레임을 할당한다고 하셨습니다. 그렇다면 가장 초기에는 어떤식으로 프레임이 할당이 되어 지는지 궁금합니다. 감사합니다. 새해 복 많이 받으세요~

  • 컴퓨터-구조
  • 운영체제
  • 기술면접
박준규 댓글 1 좋아요 0 조회수 178

멀티스레딩

해결됨

곰책으로 쉽게 배우는 최소한의 운영체제론

안녕하세요, 선생님. (참고로 저는 C++언어를 모릅니다..) "멀티스레딩과 동기화 기본"강의에서 main 함수가 부모 프로세스이고 차일드 프로세스로 별개의 프로세스고 threadFuncton01,02,03은 하나의 _beginthread로 인해 멀티 스레딩이 되고 하나의 프로세스안에 threadFunction01,02,03이 있는 걸로 이해했습니다. 맞을까요 ? Q1) Sleep()함수가 없을 때, threadFunction01,02,03이 실행되기도 전에 main함수가 종료되었는데, 그래서 threadFunction01,02,03이 실행이 되지 못해서 end가 안찍혔는데, main함수가 종료되었는데 threadFunction01이 나중에 종료될 수 있는지도 ... 설명 부탁드립니다.. Q2) 저는 큐가 한 개인 걸로 이해했는데요, 큐에 main함수 스레드를 m-1, threadFunction함수 스데드를 t-1, t-2, t-3로 한다면, [m-1, t-1, t-2, t-3] 순으로 큐에 있다가 sleep 때문에 m-1이 큐에서 빠졌다가 100ms 지나서 되돌아 올 때, 코어가 8개니까.. t-1, t-2, t-3가 임의의 코어가 나눠가졌는데.. 그 코어의 스케쥴링에 따라서 운이 좋게 t-3가 먼저 실행되어서 순서가 threandFunction01,03,02로 출력된 거라고 이해하면 될까요 ? Q3) 큐에 스레드가 쌓일 때, 함수의 실행 순서랑은 상관 없이 쌓이는 건가요...? Q4) 스레드의 실행 순서는 알 수 있다면.. 프로세스는 순서대로 실행되나요..?

  • 운영체제
꿀밤양갱 댓글 2 좋아요 0 조회수 445

프레임워크와 라이브러리

미해결

CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조

강의를 듣다가 중간 설명에 궁금한 점이 있어서 여쭤봅니다. axios는 라이브러리고 vue.js 는 프레임워크인데 axios의 경우 vue.js나 다른 라이브러리에 적용되어서 vue.js가 axios를 통해 http 통신을 받을 수 있다고 설명하셨고, 바로 다음에 vue.js는 프레임워크이기 때문에 react와 같은 라이브러리를 그 안에 넣기가 힘들다고 하셨습니다. 즉, 라이브러리는 라이브러리 혹은 프레임워크에 적용할 수 있지만, 프레임워크는 더 엄격하기 때문에 라이브러리를 받아들이거나 수정하기는 어려다는 설명이었습니다. 여기서, "axios를 통해" 라는 건 axios가 실제 vue.js에 포함되어 지지는 않고 그냥 거쳐가기 때문에 가능하다는건가요..? 그렇다면 프레임워크에 직접적인 변경이 아니라 그냥 라이브러리를 적용하는 건 허락이 된다는 의미일까요? 라이브러리는 프레임워크에 적용될 수 있지만, 프레임워크는 라이브러리를 받아들이는 건 어렵다는게 약간의 모순으로 들려서 마이너한 질문일 수 있지만 여쭤봅니다 :) 라이브러리가 프레임워크에 적용되는것은 다른 말로 프레임워크에서 라이브러리를 채택하여 받아들이는 형태이지 않을까 해서 혼돈이 일어났습니다,,

  • 면접
  • 운영체제
  • 기술면접
yun218 댓글 1 좋아요 0 조회수 405

동기화 질문입니다.

해결됨

개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제

안녕하세요! 강의 정말 유익하게 잘 듣고 있습니다. 이번에 동기화 단원을 듣게 되면서, 몇가지 궁금증이 생겨서 질문을 하게 되었습니다. A 프로세스 혹은 쓰레드가 임계구역에서 작업을 수행하고 있었다고 가정을 하겠습니다. 이때 cpu가 지정한 타임 슬라이스를 초과하여 cpu를 사용하였고, 임계 구역에서의 진행이 완료되지 않은 상태로 타이머 인터럽트가 발생하였다고 가정을 하겠습니다. 이러한 상황에서 만약 새로운 프로세스 B가 해당 임계구역에 접근을 하게 된다면, 이에 대한 부분은 어떻게 처리가 되는 것인지 궁금합니다. 기존의 공유 자원이 업데이트 되지 않은 상태로 진행이 되게 되면, 분명히 레이스 컨디션이 발생할 수 도 있다고 생각이 듭니다. 세마포의 경우에는 임계 구역에 진입할 수 있는 프로세스의 개수, 즉 사용 가능한 공유 자원의 개수를 전역변수로 설정하여 여러 개의 공유자원을 관리할 수 있다고 하셨습니다. 그렇다면 세마포의 경우에는 각 공유자원의 종류에 따라 구분하여 관리는 할 수 없는 것인지 여쭤보고 싶습니다. 이것이 세마포의 단점? 이 되는 것인지 궁금합니다. 운영체제는 처음 공부해 보는 것이라서 질문이 좀 난잡하고 불명확할 수 있다는 점 죄송합니다. 열정적인 강의 덕분에 재미있게 공부를 할 수 있는 것 같습니다! 항상 감사합니다.

  • 컴퓨터-구조
  • 운영체제
  • 기술면접
박준규 댓글 2 좋아요 1 조회수 246

섹션1 - 외워야 할 단위 체계 #2 부분 질문

해결됨

넓고 얕게 외워서 컴공 전공자 되기

안녕하세요. 최호성 선생님. 현재 좋은 강의 잘 수강하고 있습니다. 넓고 얕게 외워서 컴공 전공자 되기 강의중 섹션1 - 외워야 할 단위 체계 #2 부분에서 이해가 안 되는 부분이 있습니다. 비슷한 질문을 강의 내 커뮤니티에서도 참고를 했는데도 약간 이해가 안 돼서 직접 문의드립니다. 16비트의 경우 65,536가지의 경우의 수가 있고, 65,536 Bytes로 단위가 올라가면서 64KB가 된다고 하셨는데 단위가 올라가는 개념은 이해가 되나 메모리에서 데이터를 다루기 위한 최소 단위가 1바이트이고 1바이트는 곧 8비트를 의미하는 것으로 압니다. 그럼 16비트 자체는 2바이트라고 볼 수 있을 텐데 강의에서 알려주시는 16비트는 65,536가지의 경우의 수가 65,536 Bytes가 되는 개념이 '1바이트를 관리하기 위한 메모리 주소가 총 65536개 있음'이라고 질문 글에 답변 주신 것을 봤습니다. 16비트 -> 2바이트 16비트 -> 65,536바이트(메모리 주소 개수) 이렇게 놓고 본다면 위의 16비트 -> 65,536 바이트라는 개념에서 바이트->비트 단위로 다시 계산해 본다면 524,288비트로 계산이 되어서 위 2개의 경우가 서로 다른 개념이라고 생각이 되기는 하는데.. 어떻게 다른 개념인지 이해가 잘 안됩니다. '16비트 -> 2바이트'는 단순 메모리 저장 단위 개념? '16비트 -> 65,536바이트'는 운영체제 내부에서 메모리 사용되는 값의 개념? 이렇게 두 가지가 다른 경우라고 이해하는 게 맞을까요? 말씀처럼 넓고 얕게 외우고 싶은데 이 부분은 헷갈려서 어떻게 얕게 외워야 할지 모르겠습니다... 개념이 제대로 안 잡혀서 질문을 제대로 드렸는지도 모르겠습니다.. 도움 부탁드립니다! 감사합니다.

  • 운영체제
열쓰 댓글 2 좋아요 0 조회수 332

window10 이 아니면 안되나요??

해결됨

운영체제 공룡책 강의

윈도우10보다 이상이면 리눅스 프로그래밍 안되는걸까요??

  • 운영체제
  • 동시성
지원 댓글 1 좋아요 0 조회수 761

FIFO second-chance와 LRU의 성능 차이가 나나요?

해결됨

개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제

안녕하세요 강의 잘 듣고 있습니다. 페이지 교체 알고리즘 중 가장 오래 사용되지 않은 페이지의 스왑 아웃과 먼저 들어온 페이지들 중 참조되지 않은 페이지를 선별하여 스왑아웃 하는 것이 결과적으로 비슷한 결과가 나올 거 같은 생각이 들었습니다. 제가 잘 이해한 게 맞다면 예시로 들어주신 참조열 2313523423의 경우에도 두 방식이 동일하게 2, 1, 5를 스왑 아웃 하는 결과가 나오는 듯 합니다. 이 둘의 사용성에 대한 더 구체적인 차이를 알 수 있을까요?

  • 컴퓨터-구조
  • 운영체제
  • 기술면접
진홍 박 댓글 1 좋아요 0 조회수 250

0번 프로세스 1번 프로세스 질문이요

미해결

그림으로 쉽게 배우는 운영체제

0번 프로세스와 1번 프로세스의 차이가 궁금해서 질문해봅니다 이 사진이맞는걸까요 아니면 이 사진이 맞는걸까요?

  • 운영체제
자바마스터하자 댓글 1 좋아요 1 조회수 271

프로젝트

미해결

CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조

안녕하세요 이번에 팀 프로젝트를 하게된 백엔드 취준생입니다. 프로젝트에서 중요하게 다룰 내용 중 하나가 팀원과의 소통 및 협업이라구 하셨는데요, 프론트엔드 개발자는 두 명있는데 백엔드는 저 혼자인 상태입니다. 근데 나중에 백엔드 개발자가 저 혼자라는게 소통 및 협업에 있어 면접관들이 마이너스로 볼 요소가 되나요? 만약 백엔드 개발자가 혼자라서 마이너스 요소가 된다면 중간에라도 백엔드를 한 명 더 추가해야 되나 싶네요 ㅜㅠ

  • 면접
  • 운영체제
  • 기술면접
c3392302 댓글 1 좋아요 0 조회수 264

자료구조 공부

해결됨

곰책으로 쉽게 배우는 최소한의 운영체제론

안녕하세요, 선생님. 새해 복 많이 받으세요. 좋은 강의 잘 보고 있습니다. 운영체제 강의 수강하면서 운영체제 및 가상 메모리를 잘 이해하려면 C언어를 공부해야하는 게 전제 조건일까요.. ? 저는 1년차(비전공자)백엔드 개발자로 자바스크립트를 사용하고 공부해오고 있는데요... 선생님의 로드맵으로 강의를 수강하면서 c언어 공부도 해야 이 강의를 좀 더 이해할 수 있는 건가 해서 문의드립니다. 감사합니다.

  • 운영체제
꿀밤양갱 댓글 2 좋아요 0 조회수 454

LCD 펌웨어 코드 질문입니다

해결됨

FreeRTOS 프로그래밍

안녕하세요. LCD 펌웨어 코드는 개발자가 일일이 작성해야하는 것인가요? 아니면 해당 제품을 사면 펌웨어 코드가 같이 오는 건가요?

  • 운영체제
  • 임베디드
  • FreeRTOS
토끼야놀자 댓글 1 좋아요 1 조회수 378

뮤텍스 질문입니다.

해결됨

FreeRTOS 프로그래밍

안녕하세요. 뮤텍스 강의 수강중에 질문이 있습니다. 뮤텍스는 우선순위전도 문제를 해결하는 능력이 있는 세마포어라고 볼 수 있습니다. 이 우선순위전도 문제를 뮤텍스를 사용하면 저절로 해결되는 것인가요?

  • 운영체제
  • 임베디드
  • FreeRTOS
토끼야놀자 댓글 1 좋아요 1 조회수 289

Native Code 질문입니다!

해결됨

넓고 얕게 외워서 컴공 전공자 되기

안녕하세요! Native Code와 Managed Code 관련해서 질문을 남겨 봅니다! C언어의 컴파일 과정에서, 목적 파일이 생성 되지않습니까? 이러한 목적 파일이, 링킹 과정을 거치면 실행 파일이 되는걸로 알고 있습니다 여기서 질문입니다! 실행 파일의 적힌 실행 코드가, Native Code와 같은 의미인가요? JVM과 같이, 소프트웨어 CPU(virtual machine)를 예로 들었을 때, 컴파일 과정을 거치고, 최종적으로 만들어진 실행파일의 적힌 코드는 Managed code라고 보면 되는걸까요? 감사합니다!

  • 운영체제
붉은외계인 댓글 1 좋아요 0 조회수 280

가상메모리 관련잘문입니다

해결됨

넓고 얕게 외워서 컴공 전공자 되기

Hdd의 용량을 많이 사용했을때 컴퓨터가 느려졌다 느껴지게되는것이 가상메모리로 할당할 영역이 줄어들어서인가요? 같은 양의 연산을 할 때 메모리의 용량이 적을수록 할당하는 가상메모리의 용량이 커지나요?

  • 운영체제
  • 가상메모리
dongheon001 댓글 2 좋아요 0 조회수 318

언어

미해결

CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조

현재 파이썬과 html만 어느정도 익혀둔 상태인 입문자 입니다. 현재 json강의만 들었는데 json은 파이썬의 dictionary덕에 이해할 수 있었습니다. 그런데 책을 보니 주로 수업에서 사용하는 언어가 자바나 자바스크립트가 많더라고요 그래서 혹시 다른 챕터를 들을 때 자바나 자바스크립트에 대한 이해도 없이 따라가기가 어려운지 궁금하니다.

  • 면접
  • 운영체제
  • 기술면접
최진욱 댓글 1 좋아요 0 조회수 300

운영체제 구성 그림에서 입출력 장치의 위치

미해결

홍정모의 따라하며 배우는 C언어

안녕하세요. "0.3.운영체제가 해주는 일들" 설명을 듣다가 의문점이 생겨서 질문 남깁니다. <그림1> 위의 그림을 보면서 저는 사용자가 하드웨어 자원을 사용하기 위해서는 직접 하드웨어를 사용할 수 없기에, 응용 프로그램을 실행하고 응용 프로그램은 커널을 통해 하드웨어 자원을 사용하는 것이라고 이해했습니다. CPU, 메모리, 보조기억 장치는 직접 사용자와 상호작용을 할 수 없다는 것은 이해가 되지만(직접 손으로 조작하여 사용할 수 없기 때문), 입출력 장치는 사용자와 직접 상호작용 한다고 생각했습니다. 왜냐하면 직관적으로 생각을 해보면, 프로그램을 실행 할 때 "마우스로 응용프로그램을 클릭 or 키보드로 명령어 입력(입출력 장치 사용)-> 응용 프로그램 실행-> Kernel을 통한 하드웨어 사용(CPU, 메모리, 보조 기억장치)" 과 같은 과정이 일어나기 때문에, 입출력 장치는 사용자와 제일 먼저 상호작용 하는 것 아닌가? 라는 생각을 했습니다. <그림2> 궁금증을 해결하기 위해 검색을 해보니, 다음과 같은 그림을 찾을 수 있었습니다. 위 그림을 보면 키보드 마우스 등등 입출력 장치는 사용자와 가장 먼저 상호작용을 하는 것처럼 나와있고 이는 직관적으로 이해가 됩니다. 요약해서 질문을 드리면 입출력 장치는 사용자와 가장 먼저 상호작용 하는 하드웨어임에도 불구하고 왜 <그림1>에서는 사용자와 가장 멀리 떨어진 부분에 위치하는 지 궁금합니다. 긴 글 읽어주셔서 감사드립니다.

  • c
  • 운영체제
김남훈 댓글 1 좋아요 2 조회수 383

PuTTy에 출력되지 않습니다

미해결

FreeRTOS 프로그래밍

장치관리자에서 port를 확인해서 seiral line과 speed를 설정하고 open을 했습니다. 01_ TASKMAN을 디버그 했습니다. 그런데 영상처럼 출력되지 않고 커서만 표시됩니다. 어떻게 해결해야 하나요?

  • 운영체제
  • 임베디드
  • FreeRTOS
  • putty
Wind 댓글 1 좋아요 1 조회수 489

메모리(Code영역) 관련 질문

해결됨

그림으로 쉽게 배우는 운영체제

안녕하세요. 감자선생님! 금일 작성한 질문 답변 감사합니다~ 답변 확인중에 문득 떠오른게 있어, 새 게시글로 작성하였습니다. [이전질문] 메모리 Code 영역에 프로그래머가 작성한 코드가 기계어로 올라가고 프로그램 실행 시, Code영역(메모리)에 실행에 필요한 부분만 올라가게됩니다. 여기까지 확인했습니다. 그리고 이전 질문 내용은 100번쨰 줄 : int a = 5; 101번쨰 줄: printf(a); 위 상황에서, 만약에 101번쨰줄 명령문 통째로 Rom에 저장되어있었으면 운영체제가 어떻게 알고 저 데이터를 불러(스왑)하는지? 질문드렸었는데요. 비유를 하면 요리 레시피가 1번 ~ 10번까지 적혀있는데 2번까지 순차적으로 요리 하다가 3번이 없어진 상황입니다. (다음 실행할 명령 101번쨰줄에 해당하는 기게어가 Ram에 없으니 실행이 더 없는 상황) [확인질문] 답변 주신 내용중에 " 해당 코드는 메인메모리로 불러와서 실행해야겠죠? ㅎㅎ" 여기서 곰곰히 생각해보니, PCB에 프로그램 카운터가 있는게 떠올랐습니다!!!!!!! 그러면 이 프로그램 카운터에서 다음 실행할 명령 주소를 아니가 101번쨰에 해당하는 데이터(명령문)을 Rom에서 Ram으로 불러오는게 가능하다 라고 이해했는데 맞는지 확인 질문드립니다.

  • 운영체제
전우형 댓글 1 좋아요 1 조회수 242

메모리관련 질문

해결됨

그림으로 쉽게 배우는 운영체제

안녕하세요. 감자선생님! 메모리(+가상메모리)관련 질문있습니다. Q1.메모리 할당방식 0:10 ~ 0:30 1) "당장 실행시켜야할 부분"이라면, Code영역 Data영역 데이터들로 추측되는데 대략적으로 맞을까요? 2) 해당 예시는 총 메모리보다 프로그램 크기가 큰 경우, 메모리오버레이 적용으로 이해했습니다. 그 반대의 상황 메모리(2GB) 게임(1GB)에서도 오버레이 적용 되는지 궁금합니다. 예상으로는 반대상황에서도 게임 실행 시, 1GB가아닌 훨씬 작은 메모리만 사용할것으로 추측중입니다. Q2.가상메모리개요 1:45 1) 보라색 캐릭터(프로세스)의 데이터(Code,Data,Stack,Heap)들은 실제 형태는 RAM or ROM-스왑영역에 올라가 있는 상황으로 이해했습니다. 맞는지 궁금합니다. Q3.디멘드페이징 0:25 메모리 Code 영역에는 작성한 코드가 기계어로 들어가있습니다. 1)저가 만약 5만줄의 코드를 작성하면, 5만줄에 해당하는 기계어 전체가 다 들어가있는 건지 궁금합니다. 2)Code영역에 비즈니스로직(프로그램의 시작과 끝 로직)도 ' Ram과 Rom으로 나뉘어져 실행되는 구조인지 궁금합니다. ex)비즈니스로직에서 - A번쨰 줄 로직 : int 변수에 5를 더하기 - 그다음 줄 로직 : 위 변수 출력 이렇게 있는 상황에서 A번쨰줄 로직은 Ram에서 실행되고있고, 그 다음줄 로직은 Rom에 있으면 안될것같은 느낌이 확 들어 질문드립니다.(그 다음줄을 Rom에서 불러올 방법이 없습니다) 그렇게 되야 모든 로직이 실행되며 필요한 데이터는 Rom에서 불러오고 종료되고 할것같습니다. 이상입니다. 연휴잘보내세요!

  • 운영체제
전우형 댓글 1 좋아요 1 조회수 273

파일할당 테이블

미해결

그림으로 쉽게 배우는 운영체제

안녕하세요 파일 할당 시스템에서 파일을 삭제를 하면 헤더가 지워지고 그 지워진 블록은 지워진 블록끼리 연결을 해 메모리에 빈 공간이 어디있는지 스캔할 필요를 줄여주잖아요. 이때 데이터가 지워지는 게 아니라 헤더가 지워져서 나중에 포렌식 복구를 하여 데이터를 복구할 수 있다고 하셨는데, 그럼 새로운 데이터를 거기에 할당하게 될 경우는 어떻게 되는 건가요? 그 데이터만 남은 블록에 새 데이터가 할당되지 않은 부분만 포렌식 복구를 할 수 있는 건가요?

  • 운영체제
은혜 댓글 1 좋아요 1 조회수 297

인기 태그

인프런 TOP Writers

주간 인기글