하드웨어 + 운영체제
컴퓨터 시스템을 활용하는 SW 개발
Windows OS 자체의 기능을 십분 활용하는 프로그래밍
시스템 프로그래밍은 모든 응용 프로그램에 포함되는 요소
버스 인터페이스 : 데이터를 CPU 내부로 읽기 위해서 필요. I/O 버스를 통해 데이터를 받음
레지스터 : CPU 내부에서 사용하는 저장 장치. 레지스터에 있는 제이터를 ALU, CU가 사용. CPU 내부에서 컨텍스트 스위칭 할때 레지스터의 데이터가 교환
Control Unit : CPU의 다른 장치(ALU, 레지스터) 제어, CPU 안에서 CPU 역할
ALU : 수학적 연산 수행
클럭 발생기에서 클럭 신호를 발생 시킨다
클럭이 발생 할때마다 CPU의 장치가 동작함
CPU의 각 장치의 동기화를 위해 필요
Fetch : CPU 내부로 명령어 이동
Decode : CU에서 명령어 해석
Execution : 연산을 진행(ALU의 산술 연산)
데이터 버스 : 데이터 이동
어드레스 버스 : 주소 이동, 메모리 주소 데이터가 이동됨
컨트롤 버스 : 컨트롤 신호 이동, CPU와 메모리 사이의 상호 작용을 위해 신호를 주고 받는 통로(FTP에서 클라이언트와 서버가 파일을 주고 받는 것 이외에 통신을 열거나 마치는 작업등을 수행하기 위해 사용하는 Port와 비슷)
I/O BUS에서 한번에 송수신 가능한 데이터 크기
CPU에서 한번에 데이터 처리할 수 있는 크기
프로그램에서 사용할 수 있는 메모리 주소 전체 범위 결정
32bit는 포인터 크기가 32bit
64bit는 포인터 크기가 64bit
32 bit 프로그램은 64 bit 프로그램에서 동작 가능하다. 다만 성능에 지장을 줄 수 있다.
32 bit 프로그램에서 메모리 주소를 BUS로 보낸다고 하면 32 bit 프로그램은 32 bit씩 2번 데이터를 보내야만 하나의 메모리 주소를 전달 가능하다.
불필요하게 한번더 I/O 버스를 사용 하는 것이다.