Legacy/뇌자극 - WinSysProg
-
2015.01.18 프로세스의 상태 변화Legacy/뇌자극 - WinSysProg 2015. 1. 18. 14:45
프로세스의 상태 변화 1. S(Strart)에서 Ready 상태로의 전이 여기서 S는 프로세스가 생성되었음을 의미한다. 프로세스는 생성과 동시에 Ready 상태로 들어간다. Ready 상태에 있는 프로세스는 CPU에 의해 실행되기를 희망하는 상태이다. 이때 "프로세스가 생성되었으면, 바로 실행(Running)되어야 하는 것 아닌가?" 라는 의문을 품을 수도 있지만, 현재 CPU에 의해서 임의의 프로세스가 실행 중에 있을 것이다. 새로운 프로세스가 생성되었다고 해서 현재 실행중인 프로세스를 무조건 멈추게 할 수는 없는 일이므로, 스케줄러에 의해 선택되기를 바라며, Ready 상태가 된다. 2. Ready 상태에서 Running 상태로의 전이 Ready 상태에 있는 프로세스들은 스케줄러에 의해서 관리되는 프..
-
2015.01.17 프로세스의 생성과 소멸Legacy/뇌자극 - WinSysProg 2015. 1. 17. 17:56
프로세스의 생성과 소멸 프로세스란 무엇인가?프로세스란 실행 중에 있는 프로그램을 의미. 프로세스를 구성하는 요소 위 그림이 프로세스 생성시 만들어지는 메모리 구조를 보여주고 있음. 이 자체를 프로세스라고 표현하기도 함. Register Set프로그램이 실행 중에 있다면, CPU를 구성하는 레지스터들은 그 프로그램을 실행하기 위해 필요한 데이터들로 채워지게 된다. 따라서 레지스터들의 상태까지도 프로세스의 일부로 포함시켜 말할 수 있다. (Context Switching을 이해하는데 있어서 아주 중요한 요소) 프로세스의 스케줄링과 상태변화프로세스의 스케줄링(Scheduling)하나의 CPU가 여러 프로세스를 고속으로 번갈아 가며 실행시켜서 프로그램 사용자로 하여금 동시에 여러개의 프로그램이 실행된다고 느끼게..
-
2015.01.16 LOAD&STORE DIRECT INDIRECT 모드Legacy/뇌자극 - WinSysProg 2015. 1. 16. 23:06
LOAD & STORE 명령어"연산결과를 레지스터에만 저장할 수 있도록 하겠다."라는 제약사항=> 피연산자에는 메인 메모리의 주소값이 올 수 없다는 제약도 둔 것과 마찬가지 why? 피연산자로 올 수 있는 것을 숫자(즉시값, Immediate value) 또는 레지스터로 제한했기 때문 그렇기 때문에 레지스터와 메인 메모리 사이에서 데이터를 전송할 수 있는 명령어가 필요 메모리 => 레지스터 LOAD메모리
-
2015.01.13 프로세스, IPCLegacy/뇌자극 - WinSysProg 2015. 1. 13. 15:12
Part 02. 프로세스와 IPC16비트 짜리 8개의 레지스터로 디자인 1. 레지스터 디자인r0r1r2r3r4r5 ir(instruction registr)r6 sp(stack pointer)r7 lr(link register)r8 pc(program counter) 2. 명령어 (구조 및 종류) 디자인CPU구성형태(레지스터 구성형태)에 따라서 명령어 구조가 달리짐. => CPU가 달라지면 이에 따른 명령어 구조가 달라진다. (즉, 어셈블리 언어로 구현된 프로그램은 구조가 다른 CPU로 이식이 불가능하다.) "레지스터 r1에 있는 값을 숫자 7을 더해서 레지스터 r2에 저장하라."=> 덧셈, r1, r2, 7 1.어셈블리구성2.메모리 로드(Load)3.Fetch4.Decode5.Execution "첫 번..
-
2014.12.23 Polymorphic 자료형Legacy/뇌자극 - WinSysProg 2014. 12. 23. 12:54
Polymorphic 자료형12345678910111213#if defined (_WIN64) typedef __int64 LONG_PTR; typedef unsigned __int64 ULONG_PTR; typedef __int64 INT_PTR; typedef unsigned __int64 UINT_PTR;#else typedef long LONG_PTR; typedef unsigned long ULONG_PTR; typedef int INT_PTR; typedef unsigned int UINT_PTR;#endifcsPTR이 붙어있지만 포인터는 아님!포인터값 기반의 산술연산을 위해 정의된 자료형이기 때문에 PTR이 붙음 오류의 확인GetLastError 함수 사용오류가 발생했을 때, 이어서 바로 G..
-
2014.12.21 LPCTSTR LPTSTRLegacy/뇌자극 - WinSysProg 2014. 12. 21. 10:36
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253LPSTR CHAR *LPCSTR CONST CHAR * LPWSTR WCHAR *LPCWSTR CONST WCHAR * #ifdef UNICODE typedef WCHAR TCHAR; typedef LPWSTR LPTSTR; typedef LPCWSTR LPCTSTR;#else typedef CHAR TCHAR; typedef LPSTR LPTSTR; typedef LPCSTR LPCTSTR;#endif #ifdef _UNICODE #define __T(x) L ## x#else #define __T(x) x#endif #defin..