프로세스가 수행할 수 있는 기본 기능은 산술연산(더하기,빼기,곱하기,나누기), 메모리에서 값을 가져오거나 저장하는 기능 그리고 컴퓨터에 연결된 다른 장치(디스플레이, 키보드 등)을 제어하는 기능이 있다.
여기서 가장 큰 특징은 프로세서는 스스로 결정할 수 있다는 것이다. 크거나 작거나 같은지 비교연산을 한 후에 다음에 할 일을 결정하게 되는데 위에 기능들과 결정기능 등을 통해 다양한 프로그램을 동작 시킬 수 있다.
프로세서의 동작 방식을 이해하기 위해 모형컴퓨터 예제 사이트를 통해 살펴보았다.
모형컴퓨터 예제 사이트
입출력
사용자에게 숫자를 입력받아 출력 (10을 입력하였을 때)
덧셈 (1번만)
사용자에게 2개의 숫자를 입력받아 그 합을 출력 (5, 7을 입력)
덧셈
사용자에게 임의의 숫자를 입력받아 그 합을 출력 (1, 2, 3, 4, 0를 입력)
javascript에서 자주 사용하는 Date 객체
const now = new Date();
const date1 = new Date(24 * 3600 * 1000); // 1970/01/01 기준 ms시점 후
const date2 = new Date("2022-01-01"); // 해당 date string 시점
const date2 = new Date(2001, 0, 1, 0, 0, 0, 0); // 년,월,일,시,분,초,ms
// * 월의 경우 0(1월) ~ 11(12월)로 처리
console.log(now); // 현재 날짜 출력
console.log(date1); // 1970/01/02 출력
console.log(date2); // 2022/01/01 출력
console.log(date3); // 2001/01/01 출력
const now = new Date(); // 2022/06/11 15:12:39.498
console.log(now.getFullYear()); // 4자리 년도 출력 > 2022
console.log(now.getMonth()); // 월을 출력 (0 ~ 11) > 5
console.log(now.getDate()); // 일을 출력 > 11
console.log(now.getHours()); // 시간을 출력 (0 ~ 23) > 15
console.log(now.getMinutes()); // 분을 출력 > 12
console.log(now.getSeconds()); // 초를 출력 > 39
console.log(now.getMilliseconds()); // ms를 출력 > 498
const now = new Date(); // 2022/06/11 15:12:39.498
now.setFullYear(2033);
now.setMonth(0);
now.setDate(1);
now.setHours(2);
now.setMinutes(3);
now.setSeconds(4);
now.setMilliseconds(5);
console.log(now); // 2033/01/01 02:03:04.005 출력
now.setTime(24 * 3600 * 1000); // 1970/01/01 기준 ms시점 이후
console.log(now); // 1970/01/02 출력
오늘의 한줄
컴퓨터의 프로세서가 실제로 동작하는 방식을 예제를 통해 간략하게나마 알 수 있었다.
프로그래밍을 먼저 배운 상태에서 보니 동기식 프로그래밍의 동작방식과 유사한 것 같다.
다음에 해당 예제 프로그램을 javascript로 직접 만들어 보아야겠다.