목록IT/윈도우 프로그래밍 (66)
LISTORY
뇌를 자극하는 윈도우즈 시스템 프로그래밍 책의 유투브 강의 내용 정리이다. 오늘 정리할 내용은 프로세스 vs 쓰레드의 내용이다. YouTube 주소 프로세스 vs 쓰레드 프로세스 vs 쓰레드 ⊙ 쓰레드의 이해 쓰레드에 대해 알기 전에, 먼저 멀티 프로세스에 대한 이해가 필요하다. 멀티프로세스가 필요한 경우와 불필요한 경우는 어떤 경우일까? 운영체제 관점에서 멀티 프로세스가 필요한건 둘 이상의 프로그램을 실행시키기 위해서이다. 그런데 하나의 프로그램 안에서도 멀티 프로세스가 필요할까? 하나의 프로그램에서는 하나의 흐름을 갖는다. 즉 코드를 실행하는게 하나의 흐름이다. 근데 소프트웨어가 복잡해지면서 하나의 프로그램에서 둘 이상의 흐름을 가져야 하는 상황을 접하게 된다. 대표적으로 전투 테트리스가 있다. 자신..
뇌를 자극하는 윈도우즈 시스템 프로그래밍 책 관련 YouTube 강의 정리이다. 이번 시간에 정리할 내용을 호출 규약과 실행의 이동 부분이다. YouTube 주소 호출 규약과 실행의 이동 호출 규약과 실행의 이동 이번 장(10장)에선 계속 함수호출이 CPU 내부적으로 어떻게 전개되는지 다루고 있다. 저번 시간과 그 전 시간에 매개 변수 전달, 지역변수 선언 대해 설명하였고, 이번 시간에는 실행의 이동에 대해 설명하겠다. 함수 호출되는 순간, 실행되는 코드가 다른 함수로 이동한다. 이게 어떻게 가능한걸까? 실행의 이동의 키는 바로 프로그램 카운터(PC)이다. PC는 다음 명령어의 주소값을 가지고 있다. 오른쪽 그림을 보자. 명령어가 코드 영역에 쌓여 있다. 이 명령어들을 실행하기 위해선 하나씩 CPU 내부..
뇌를 자극하는 윈도우즈 시스템 프로그래밍 책 관련 유투브 강의 정리이다. 이번에 정리할 내용은 함수 호출 인자의 전달과 PUSH&POP 명령어 디자인이다. ⊙ YouTube 강의 주소 ⊙ ☞ 함수 호출 인자의 전달과 PUSH&POP 명령어 디자인 함수 호출 인자의 전달과 PUSH&POP 명령어 디자인 저번시간에 말했듯이, 함수 호출을 생각하면 떠오르는 세가지가 있다. 1. 인자 전달2. 지역변수3. 실행의 이동 이번에 공부할 내용은 인자 전달 부분이다. 전달되는 인자도 지역변수와 마찬가지로 스택에 쌓는다. 지역변수와 라이프 사이클이 일치한다. ⊙ 함수 호출 인자의 전달 방식 ※ 현재 그림을 보면 인자가 순서대로 스택에 들어가지만, 실제로는 역순으로 들어간다. (8,7) 여기서 해야하는 일은 다음과 같다...
뇌를 자극한는 윈도우즈 시스템 프로그래밍 책 관련 유트브 강의 내용 정리이다. 오늘 정리할 내용은 절차적 함수 호출 지원 CPU 모델 부분이다. ⊙ YouTube 주소 ⊙ ☞ 절차적 함수 호출 지원 CPU 모델 절차적 함수 호출 지원 CPU 모델 이번 시간에 공부할 내용은 함수 호출에 관련된 이야기다. 함수 호출을 실행할때 CPU가 내부적으로 함수 호출을 어떻게 처리할까? 일단 함수 호출을 하면 떠오르는 것들이 있다. ⊙ 함수호출 하면 떠오르는 것?1. 인자 전달2. 지역 변수3. 실행의 이동(A함수 -> B함수) 이 강의에서는 지역변수가 내부적으로 어떻게 처리되는지 정리할 것이다. ⊙ 스택 프레임(Stack Frame)이란? 메인함수에서 변수 두개 선언 및 함수를 호출하였다. 변수 a,b는 메인에서 선..
뇌를 자극하는 윈도우즈 시스템 프로그래밍 책 관련 YouTube 강의 내용 정리이다. 이번 시간에 정리할 내용은 Windows 프로세스 우선순위이다. YouTube 주소 Windows 프로세스 우선순위 Windows 프로세스 우선순위 ⊙ 스케줄링 진행 시점 간단히 설명하면 다음과 같은 시점에서 스케줄링 진행된다. 1. 매 타임 슬라이스(Time Slice)마다: 타임 슬라이스 사이에서도 컨텍스트 스위칭은 발생할 수 있는가? 2. 프로세스가 생성 및 소멸될 때마다: 생성되면 신고하기 위해서. 소멸될 때는 무슨 이유로? 3. 현재 실행중인 프로세스가 블로킹 상태에 놓일 때 마다 각각의 경우에 대해 설명하겠다. * 설명하기 전에 먼저 알아두어야 할 것 스케줄러 또한 프로세스이다. 많이 동작하면 성능에 좋지 않..