
시스템하드웨어 + 운영체제시스템 프로그래밍컴퓨터 시스템을 활욯하는 소프트웨어 개발 Windows 운영체제 자체의 기능을 십분 활용하는 프로그래밍CPU, 캐쉬운영체제메인 메모리하드디스크파일 IO

SBCS(Single Byte Character Set)문자를 표현하는데 1바이트 사용ex) 아스키 코드MBCS(Multi Byte Character Set)한글은 2바이트, 영문은 1바이트 사용현대 시스템은 대부분 멀티 바이트를 사용.WBCS(Wide Byte Cha

구분 기준한 번에 송수신 가능한 데이터 크기 => 즉, I/O Bus 시스템이 한 번에 송수신 가능한 데이터의 크기.데이터 처리 능력=> 즉, CPU가 한 번에 읽어들일 수 있는 명령어의 크기.

✏️ 컴퓨터 구조의 접근 방법 💻 컴퓨터(CPU)를 디자인하자 GPU도 일종의 CPU. CPU 연산의 대상이 범용적이라면 GPU의 연산 대상은 그래픽에 국한되어 있다는 점이 차이점. 프로그래머 관점 레지스터와 명령어의 디자인 컴퓨터 구조를 잘 아는 프로그래머도

메인 메모리로 이동해 실행 중인 프로그램.그러나 프로그래머의 입장에서 이 같은 일반적인 정의는 애매하다. 프로세스가 윈도우에 떠있는 창인지, 메인 메모리인지, 메인 메모리에 올라와서 실행 중인 코드인지 정확하지 않음.프로세스를 구성하는 범주는 프로세스 별로 독립적으로

✏️ 커널 오브젝트 > 커널에 의해 관리되는 리소스 정보를 담고 있는 데이터. 커널

프로세스 간 통신프로세스 간 데이터 송수신. 메모리 공유프로세스 A가 프로세스 B에게 데이터를 보내는 경우, 공유되는 메모리 공간을 마련해두고 해당 공간에 A가 데이터를 가져다 두면 B가 데이터를 가져가는 흐름. 따라서 프로세스 간 통신은 내부적으로 메모리 공유라고 할

1) 프로세스가 메일 슬롯을 생성메일 슬롯 -> 커널 오브젝트의 생성을 동반하는 리소스.2) 메일 슬롯에 접근하기 위한 핸들 값과 커널 오브젝트이 주소 정보가 핸들 테이블에 등록된다.핸들 테이블은 프로세스 별로 종속적.핸들 테이블의 상속 여부조건이 맞는다면, 그리고 핸

이 내용을 스케줄링 과정에서 언급하는 이유스케줄러가 어떻게 스케줄링하느냐에 따라 일반 OS가 되기도, Real Time OS가 되기도 한다.Real Time OS어떤 상황이더라도, 얼마나 많은 프로그램이 동작 중이더라도 바로 응답한다. 즉 응답성이 좋다. 아무리 성능

✏️

멀티 프로세스가 필요한 경우OS 관점에서는 두 개 이상의 프로그램을 동시에 실행시키기 위해 기본적으로 필요.하나의 프로그램은 하나의 흐름을 갖는다. 하나의 흐름 = 코드의 흐름프로그램이 복잡해지면서 하나의 프로그램 안에서 둘 이상의 실행 흐름을 가지는 일이 생긴다.ex

쓰레드를 생성할 때는 해당 쓰레드의 작업 영역 범위를 명확히 구분지어야 함. CreateThread() 함수를 통해 쓰레드 생성dwStackSize: 쓰레드는 독립적인 스택 공간을 할당받는데, 해당 스택의 사이즈.lpStartAddress: 함수 포인터. 쓰레드의 ma

✏️ 쓰레드 동기화 임계 영역 : 둘 이상의 쓰레드가 동시에 메모리에 접근하도록 만드는 코드 블럭. 💻 메모리 접근 동기화와 실행 순서 동기화 임계 영역에 대한 메모리 접근 동기화 쓰레드의 메모리 접근을 동기화해서 한 순간에 하나의 쓰레드만 실행할 수 있도록 하는

실행 순서 동기화 = 둘 이상의 쓰레드의 실행 순서를 조정.실행 순서 동기화의 필요성아래 이미지의 모델은 I/O 모델 or 쓰레드 모델입력 = 콘솔 입력, 외부에서 들어오는 입력..출력 = 들어온 입력 데이터를 가공해 이용입력 - 출력을 번갈아서 실행.출력의 경우 입력

쓰레드를 미리 만들어서 쓰레드 풀에 저장해두고 일이 들어올 때마다 쓰레드를 할당해 일을 처리. 일을 마치면 반환된 쓰레드를 다시 쓰레드 풀에 넣어둬서 시스템의 전체적인 성능을 높여주는 매커니즘프레임워크: 프로그램을 구현할 때 제공되는 틀. 프로그램이 완성되면 프레임워크

메모리의 구성 => 하드 디스크, 메인 메모리, 캐쉬 (+ 레지스터)하드 디스크비휘발성 저장 장치 => 파일 시스템 관점프로그램의 실행을 담당 => 메모리 매니지먼트 관점메인 메모리프로그램의 실행을 담당 (저장 기능 따로 없음)보통 하드 디스크의 기능을 저장 기능에 초

시스템 = CPU + 운영체제 + App사용자 관점에서 CPU, OS는 내부, App은 외부.CPU 입장에서는 CPU는 하드웨어이고 OS, App은 소프트웨어.CPU는 자신이 순차적으로 실행하는 명령어가 OS 코드인지, App 코드인지 관심없고 연산만 할 뿐이다.CPU
ANSI에서는 파일 I/O 관련 함수를 정의해두고 있음.해당 표준 함수를 쓰면 운영체제에 상관없이 파일이 생성되고 파일 관련 연산 등을 할 수 있다. 하드웨어가 하나 있다고 가정. 해당 하드웨어에는 OS가 설치되어 있음.OS 위에서 프로그램을 동작. 파일을 생성하면 해

일반적으로 CPU 클럭 속도가 높으면 시스템 성능이 높아짐.I/O도 CPU의 클럭 속도에 어느정도 의존하지만 Bus 클럭에 민감함.보편적으로 CPU 클럭이 높으면 그만큼 Bus 클럭도 높기 때문에 I/O와 CPU의 클럭 속도는 어느정도 연관이 있음. 그러면 I/O와 C

가상 메모리 컨트롤이 갖는 의미힙 생성을 하는 이유MMF가 제공하는 장점CPU와 프로그래머 관점에서의 메모리는 가상 메모리.4GB의 가상 메모리가 있고 물리 메모리가 별도로 존재하며, 가상 메모리가 물리 메모리에 맵핑되는 형태. 가상 메모리는 페이지 단위로 구성됨.4G

DLL이 메모리 상 지니는 의미 printf() 같은 함수를 라이브러리에서 제공. 라이브러리를 링크 시 static 방식으로 할 지, dll 방식으로 할 지,디버깅 정보를 넣을지, 배포용으로 할지 개발 완료 시 첫 번째 옵션으로 릴리즈하는게 일반적. Multi-thre