inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

스레드 컨텍스트 스위칭

해결됨

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

스레드 컨텍스트 스위칭이란 cpu의 레지스터에 있는 정보를 해당 스레드의 tcb에 저장하고 다른 스레드의 tcb의 정보를 가져오는거라고 생각합니다. 그럼 thread1 = threading.Trhead(target=foo).start() thread2 = threading.Trhead(target=foo).start() 에서 멀티코어환경에서 실행시킨다고 가정할 시에는 이 코드를 실행시켯을때 스레드 컨텍스트 스위칭이 일어나지 않겠죠 ??

  • 컴퓨터-구조
  • 운영체제
  • 기술면접
릴뭐뭐 댓글 2 좋아요 0 조회수 152

레이스 컨디션 문제

해결됨

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

보여주신 실행 코드를 볼 때 결국 수정한 코드에서 쓰레드 종료 순서만 나름 올바르게 했지. 결국에는 race condition 문제는 해결 못한 거 아닌가요

  • 운영체제
sjn0125 댓글 2 좋아요 0 조회수 267

대기상태

해결됨

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

전 학습강의에서는 입출력 방식에는 크게 프로그램입출력, 입터럽트기반 입출력, DMA 입출력 방식이 있었는데, 여기서 입출력 작업때 프로세스 상태가 대기상태로 바뀐느경우는 프로그램 입출력 방식을 말하는거죠 ? 프로세스의 상태 레지스터를 주기적으로 확인한다고 했으니 cpu가 여기서 쓰이므로 대기상태로 가는것인가요 ? 혹은 입터럽트 기반 방식도 말하는건가요? 인터럽트 서비스 루틴을 실행하는 동안 대기 상태로 변하는건가요 ? DMA방식은 명령을 읽을때 DMA컨트롤러를 사용하면 되니까 CPU는 점유될 필요가 없다고 생각했습니다.

  • 컴퓨터-구조
  • 운영체제
  • 기술면접
릴뭐뭐 댓글 2 좋아요 0 조회수 110

hmmm.................

해결됨

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

언니가 들으라고 난리를 쳐서 한번 들어보는데 아죠씨 강의 아주 쏙쏙 이해 잘되네요 But you talk so many. 흠... 다음 강의 34분인데 I'm will effort.

  • 컴퓨터-구조
  • 운영체제
  • 기술면접
iamyeju 댓글 1 좋아요 -4 조회수 270

운영체제

해결됨

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

fopen 과같은 코드는 내부적으로 운영체제가 파일을 접근하는 것이기때문에, C프로그램 ( 응용프로그램 ) 은 운영체제를 통해서 파일에 접근한다고 볼수있겟네요

  • 컴퓨터-구조
  • 운영체제
  • 기술면접
릴뭐뭐 댓글 2 좋아요 0 조회수 101

Dynamic Array와 Linked List의 시간복잡도에 대해서..

미해결

기출로 대비하는 개발자 전공면접 [CS 완전정복]

안녕하세요. 강의를 보다 궁금한 점이 생겨서 질문하게되었습니다. 배열의 경우에는 중간에 데이터를 삽입 삭제를 하게되면 중간데이터를 기점으로 왼쪽이나 오른쪽으로 모든 데이터를 쉬프트를 해야하기 때문에 빅오n의 시간을 가진다고 볼 수 있는데 그렇다면 링크드리스트에서는 중간 데이터를 삽입, 삭제하게되면 다음 노드나 이전 노드의 주소를 참조만 하기만 하면되기 때문에 빅오 일의 시간복잡도를 가지게 된다고하였습니다. 그런데 중간에 데이터를 삽입,삭제할 때 이전 노드, 다음 노드의 주소를 참조하기 위해서는 해당 노드에 접근해서 참조 주소를 알아내야하지않나요? 그렇다면 링크드리스트의 경우 조회할 때 빅오 n의 시간복잡도를 가지기 때문에 빅오 n이라고 생각이 들 수도 있는데 아닌가요? 제 생각의 오류가 있는지 알고 싶습니다. 링크드리스트의 삽입 삭제시 삽입삭제 o(1) + 이전노드주소참조하기위한조회 o(n) 이므로 o(n)의 시간복잡도를 가지는게 아닌지 궁금합니다.

  • 면접
  • 운영체제
  • 기술면접
김민규 댓글 1 좋아요 0 조회수 143

dfi 부분 설명 잘못하신거 아닌가요

미해결

FreeRTOS 프로그래밍

dfi 부분 설명 잘못하신거 아닌가요? timer 인터럽트는 계속 발생 되는 거구, 다만 버튼을 눌렀을 때 해당 버튼 누른 만큼 인터럽트가 처리를 할수 있냐 없냐 확인하는게 아닌가 싶어서요 인터럽트에 heavy() 이 들어 있으면 인터럽트를 놓치는 거구 dfi 를 하게 되면 인터럽트를 놓치지 않게 처리 할 수 있다. 그 부분을 설명하는거 같은데 타이머 인터럽트는 계속 백단에서 처리되고 있는거는 동일한거 아닌가 해서요 헷갈리네요 (실습 8번에서 설명하는 영상입니다.)

  • 운영체제
  • 임베디드
  • FreeRTOS
댓글 2 좋아요 0 조회수 181

인터럽트 시 제어 위험

해결됨

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

안녕하세요 명령어 병렬처리기법에 대한 강의를 듣던 중 인터럽트 시도 제어 위험에 속하는지가 궁금합니다. 제가 이해하기로는 인터럽트 시에도 명령어를 처리하기 위해 순차적인 아닌 다른 주소번지로 점프하게 되는데 이 사항도 제어 위험에 속하는 걸까요?

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

하드웨어적 스레드

해결됨

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

하나의 코어가 동시에 처리하는 명령어 단위 라고 되어있는데 2코어 4스레드는 1코어당 2개의 명령어단위를 처리할수있으니까 하드웨어적 스레드는 2개인가요? 논리프로세서 설명하실때, 프로그램이 느끼기에 몇개의 CPU가있냐는 하드웨어 스레드의 갯수를 말하는데, 이때는 4개의 스레드가 실행중인데 하드웨어적 스레드는 2개인지, 4개인지 잘 모르겠습니다.

  • 컴퓨터-구조
  • 운영체제
  • 기술면접
팡곰이 댓글 2 좋아요 0 조회수 147

current 매크로를 이용할때 sp_el0 를 활용하는 이유

해결됨

한국에서 제일 쉬운 리눅스 커널 강의

안녕하세요. 좋은강의 감사합니다. 설명해주신대로 코드를 보면 sp_el0 를 이용해서 current 주소를 얻어온다는것을 이해할 수 있었습니다. 그런데 문득 sp_el1 도 있을텐데 왜 sp_el0 를 활용한건지 궁금합니다. sp_el0 는 user process 들이 활용하는 sp 이고 sp_el1 은 kernel process 들이 활용하는 sp 로 알고 있는데 요, 그런용도가 아니라 그냥 sp_el0 를 모든 process 의 task_struct 의 시작주소를 저장하는 용도로 활용하는걸까요? <arch/arm64/include/asm/current.h> 15 static __always_inline struct task_struct *get_current(void) 16 { 17 unsigned long sp_el0; 18 19 asm ("mrs %0, sp_el0" : "=r" (sp_el0)); 20 21 return (struct task_struct *)sp_el0; 22 } <arch/arm64/kernel/entry.S> 829 SYM_FUNC_START(cpu_switch_to) 830 mov x10, #THREAD_CPU_CONTEXT 831 add x8, x0, x10 832 mov x9, sp 833 stp x19, x20, [x8], #16 // store callee-saved registers 834 stp x21, x22, [x8], #16 835 stp x23, x24, [x8], #16 836 stp x25, x26, [x8], #16 837 stp x27, x28, [x8], #16 838 stp x29, x9, [x8], #16 839 str lr, [x8] 840 add x8, x1, x10 841 ldp x19, x20, [x8], #16 // restore callee-saved registers 842 ldp x21, x22, [x8], #16 843 ldp x23, x24, [x8], #16 844 ldp x25, x26, [x8], #16 845 ldp x27, x28, [x8], #16 846 ldp x29, x9, [x8], #16 847 ldr lr, [x8] 848 mov sp, x9 849 msr sp_el0, x1 850 ptrauth_keys_install_kernel x1, x8, x9, x10 851 scs_save x0 852 scs_load_current 853 ret 854 SYM_FUNC_END(cpu_switch_to) 855 NOKPROBE(cpu_switch_to)

  • c
  • linux
  • Raspberry-Pi
  • 운영체제
  • arm-architecture
  • asm
ym0914 댓글 2 좋아요 0 조회수 236

context switching 을 할때 수행되는 asm 코드 관련 문의 드립니다.

해결됨

한국에서 제일 쉬운 리눅스 커널 강의

안녕하세요. 강의 잘 보고 있습니다. 어리석은 질문일수도 있습니다만 문득 든 생각이라 여쭤봅니다. X0 ~ X18 은 저장 및 복원 하지 않고, X19~X29, SP, LR 만 복원하는 이유가 있을까요? 829 SYM_FUNC_START(cpu_switch_to) 830 mov x10, #THREAD_CPU_CONTEXT 831 add x8, x0, x10 832 mov x9, sp 833 stp x19, x20, [x8], #16 // store callee-saved registers 834 stp x21, x22, [x8], #16 835 stp x23, x24, [x8], #16 836 stp x25, x26, [x8], #16 837 stp x27, x28, [x8], #16 838 stp x29, x9, [x8], #16 839 str lr, [x8] 840 add x8, x1, x10 841 ldp x19, x20, [x8], #16 // restore callee-saved registers 842 ldp x21, x22, [x8], #16 843 ldp x23, x24, [x8], #16 844 ldp x25, x26, [x8], #16 845 ldp x27, x28, [x8], #16 846 ldp x29, x9, [x8], #16 847 ldr lr, [x8] 848 mov sp, x9 849 msr sp_el0, x1 850 ptrauth_keys_install_kernel x1, x8, x9, x10 851 scs_save x0 852 scs_load_current 853 ret 854 SYM_FUNC_END(cpu_switch_to) 855 NOKPROBE(cpu_switch_to)

  • c
  • linux
  • Raspberry-Pi
  • 운영체제
  • arm-architecture
  • asm
ym0914 댓글 3 좋아요 0 조회수 200

개발자 준비중인데 괜찮을까요

해결됨

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

퍼블리셔로 일하며 프론트개발자로 성장하고싶어서 공부중인데 아는 언어라곤 html, css, javascript인데 이 교재와 강의를 듣는게 어렵진 않을까요?!

  • 컴퓨터-구조
  • 운영체제
  • 기술면접
wjdals992 댓글 2 좋아요 0 조회수 171

전략 패턴과 팩토리패턴

해결됨

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

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 소셜 로그인 기능을 구현할 때 팩토리 메서드 패턴으로도 구현이 가능한지 궁금합니다. 쿼리파라미터로 어떤 provider(kakao, naver 등)가 들어오는지에 따라 그에 맞는 서비스(KakaoLoginService, NaverLoginService)를 호출하고 싶은데 전략 패턴이 아닌 팩토리 메서드 패턴으로도 이런 형태의 구현이을 하는지 궁금합니다.

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

완강을 해보니 오히려 더 궁금한게 많아지네요

미해결

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

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 커널의 실체가 뭔지, 커널모드, 유저모드, 커널스레드, 유저스레드 가 뭔가 서로 연관관계가 있어 어떻게 유기적으로 동작하는지 한 사이클이 궁금하네요 유저스레드는 시스템콜이 발생하면 블러킹이 되는데 이를 피하기 위한 방법이 여러가지가 있을 텐데 이에 대해 좀 더 알고 싶네요. 이를 따로 공부할 수 있을 만한 교재나 키워드 부탁드려요.

  • 운영체제
아무도_모를_아이디 댓글 2 좋아요 1 조회수 189

파일디스크립터 질문드려요.

미해결

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

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 여러 프로세스 혹은 스레드가 동일한 파일에 접근하면 같은 내용의 디스크립터가 반환되나요? 현재 다른 스레드(프로세스가) 같은 파일을 열고 있다는 메타데이터는 어디에서 관리되나요? 그리고 파일을 동시에 접근 제어 할 수 있는 방법은 유저스레드에서 뮤텍스나 세마포어나 락 설정 외에 커널에서 제공하는 방법이 있나요?

  • 운영체제
아무도_모를_아이디 댓글 2 좋아요 0 조회수 150

오퍼랜드 필드로 표현할 수 있는 데이터 크기 문의

해결됨

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

안녕하세요 강의 잘 듣고 있습니다. 좋은 강의에 감사합드립니다. 9강의 듣던 중 궁금한 것이 있어 문의 드립니다. 오퍼랜드에 데이터를 직접 표현 하는 것보다 주소를 명시하는 것이 더 많은 데이터를 저장할 수 있다고 설명해주셨는데 화면에서는 동일한게 10번지 영역이 12~8사이로 4비트인데 왜 데이터 직접표현에서는 2의4이고 데이터 주소명시에서는 2의16으로 계산하는지 이해가 안됩니다 데이터 주소명시에서도 여러 데이터의 주소를 명시하는 경우라면 제한 된 데이터 공간에서 결국 주소를 명시할 수 있는 공간은 작아져서 표현할 수 있는 데이터 크기가 줄어드는 것이 같은 거 아닌지도 궁금합니다.

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

RETURN 과 RET 의 차이

해결됨

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

우선 강의 잘 듣고 있다는 말씀 드리고 싶습니다. 다름이 아니라 강의에서 나오는 RETURN 이 RET 을 의미하는것일까요? 오래되서 가물가물하긴 하지만 mov esp, ebp pop ebp 로 스택 프레임을 정리하고 ret 을 호출하여 EIP 에 복귀 주소를 로딩시키는것과 동일하다는 것으로 볼 수 있는건가요? 공부하면서 어쌤블리에 따로 RETURN 이 존재하지 않았던것으로 기억해서 질문드립니다!

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

파일 시스템 관련 질문입니다.

해결됨

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

강의에서 모든 파일 시스템의 종류들은 다 FAT형식을 기본으로 갖는다고 하셨는데 검색해보니까 FAT도 한 종류의 파일시스템일 뿐이고 NTFS나 EXT 같은 종류의 파일 시스템은 각자 다른 방식으로 파일을 관리한다고 나와서요 그냥 기본적으로 FAT형식을 기반으로 발전시킨것들이다라고 이해해야할까요? 다른 종류의 파일 시스템들도 0번 트랙, 0번 섹터의 MBR을 다 가지고 있는건가요?

  • 운영체제
leedah0115 댓글 2 좋아요 0 조회수 176

TaskDelay와 printf 순서

미해결

FreeRTOS 프로그래밍

1번 실습 파일에 printf 를 찍을 때 vTaskDelay를 하고나서 왜 Printf를 찍나여? 뭔가 의미상으론 태스크가 할일(Printf 찍는 것)을 하고 Delay에 빠지는게 맞는 것 같은데 왜 TaskDelay 이후에 printf를 찍는 지 궁금합니다. vTaskDelay (pdMS_TO_TICKS (1000)); // 스스로 휴면상태에 들어감 Blocked로 다시 1000ms 후running printf("b"); fflush(stdout); // 문자 'a' 출력

  • 운영체제
  • 임베디드
  • FreeRTOS
establers 댓글 2 좋아요 1 조회수 152

인기 태그

인프런 TOP Writers

주간 인기글