자바로 CPU 구현하기 들어가며 🚩 목적 CPU 명령어 Fetch, Decode, Execute을 간단하게 구현함으로써 CPU가 어떻게 동작하는지에 대해 공부한다. 🛻 알아야하는 지식 2진수 표기법과 비트 연산 Bit Shift Bit Masking 💡 프로그램 구현 사항 CPU 구현 사항 기본 처리 단위를 16비트를 기준으로 한다. ALU는 두 레지스터에 저장된 값 A, B를 계산해서 목적 레지스터에 저장한다. ALU는 +, -, |, & 연산자만을 이용한다. 메모리 주소를 정수를 입력으로 받으면, 기계어로 변환하여 사용한다. 구현할 Class Terminal : 입력을 받아 instruction 을 메모리에 저장하기 위한 Class CPU : Decode 와 ALU 를 포함하는 Class Decode..
쓰레드와 프로세스 쓰레드 하나의 프로세스는 하나 이상의 쓰레드를 가지게 되고, 실제 작업을 단위는 쓰레드 프로세스 실행 중인 프로그램 프로그램이 실행되면 OS로부터 메모리를 할당받아 프로세스 상태가 됨 멀티쓰레드 여러 쓰레드가 동시에 수행되는 프로그래밍, 여러 작업이 동시에 실행되는 효과 쓰레드는 각각 자신만의 작업 공간을 가짐 (context) 각 쓰레드 사이에서 공유하는 자원이 있을 수 있음 (자바에서는 static instance) 여러 thread가 자원을 공유하여 작업이 수행되는 경우 서로 자원을 차지하려는 race condition이 발생할 수 있음 이렇게 여러 thread가 공유하는 자원중 경쟁이 발생하는 부분을 critical section 이라고 함 critical section에 대한 ..