하드웨어 + 운영체제컴퓨터 시스템을 동작시키는 또는 활용하는 소프트웨어 개발대표적인 시스템 프로그램: Windows, UNIX와 같은 운영체제들시스템 프로그램: 하드웨어를 사용할 수 있도록 도와주는 프로그램위와 같은 운영체제 개발자들을 가리켜 시스템 프로그래머라고 할
아스키코드(ASCII CODE)1 바이트로 표현된다.미국에서 정의하고 있는 표준이며, 26개의 알파벳과 그림문자를 비롯한 수학 기호를 포함하여 총 256개로 구성된다.유니코드(UNICODE)문자를 표현하는 데 있어서 균일하게 2바이트를 사용한다.영어와 한글을 물론 전
가상의 컴퓨터를 디자인하면서 생각CPU 디자인: H/W 전문가(로직), ASIC 전문가, Algorithm 전문가, Interface 전문가, 프로그램 전문가(레지스터, 명령어 디자인), ...프로그래머 관점컴퓨터 구조를 잘 아는 프로그래머도 컴퓨터 디자인에 참여한다.
오늘날의 운영체제: '멀티 프로세스 운영체제'예를 들어서, 하드디스크에 저장된 게임의 실행파일 이름이 block.exe라고 한다면 이것은 보통 프로그램이라고 한다. 이 게임의 실행파일인 block.exe를 더블 클릭하면 실행을 위해 메모리 할당이 이뤄지고, 그 메모리
커널에서 관리하는 중요한 정보(리소스 정보)를 담아둔 데이터 블록을 가리켜 커널 오브젝트라 한다.리소스: 운영체제에 의해서 생성 및 소멸되는 것CreateProcess 함수 호출을 통해 프로세스 생성이는 CreateProcess 함수 호출을 통해 프로세스 생성을 요구한
대부분의 운영체제는 멀티 프로세스 기반 운영체제이며, 실행중인 모든 프로세스들에게 골고루 CPU를 할당하는 일은 운영체제의 일부분에 담당하는 스케줄러가 담당하는 일이다.RTOS는 응답성이 Windows와 같은 일반 OS보다 좋다.컴퓨터를 잘 모르는 사람도 쉽게 사용할
함수 호출 과정에서 할당되는 메모리 블록(지역변수의 선언으로 인해 할당되는 메모리 블록)함수 호출이 완료(return)되면 주소를 알고 있다 하더라도 기존에 선언된 지역변수에 접근이 불가능하다.이는 할당되었던 메모리가 반환되었음을 의미하고, 해당 함수에 해당하는 할당된
둘 이상의 서로 다른 프로그램 실행을 위해서 둘 이상의 프로세스를 생성하는 것서로 별개인 두 개의 프로그램 실행을 위해서 추가적인 프로세스를 생성하는 일은 어쩔 수 없는 일이지만, 하나의 프로그램이 둘 이상의 프로세스 생성을 요구하는 것은 빈번한 컨택스트 스위칭으로 인
생성할 수 있는 쓰레드의 쵀대 개수는?메모리가 허용하는 만큼쓰레드가 생성될 때 마다 독립된 스택을 할당해 줘야만 한다. 즉, 스택을 할당할 수 있을 때 까지 쓰레드의 생성을 허용한다.Default 스택 사이즈는 1MB이고, 이 때 생성되는 쓰레드의 개수는 2024개이다
동기화: '일치한다'는 의미에서의 동기화가 아닌, 순서에 의해서 질서가 지켜지고 있음을 의미하는 동기화이다.실행순서의 동기화쓰레드의 실행 순서를 정의하고, 이 순서에 반드시 따르도록 하는 것접근의 순서가 이미 정해져 있는 상황에서, 그 순서만 지켜지면 된다.메모리 접근
쓰레드의 실행순서를 동기화한다.메모리에 접근하는 쓰레드의 실행순서를 동기화한다.실행순서 동기화는 메모리 접근 동기화를 포함하는 개념이다.예를 들어, 문자열을 입/출력하는 연산을 생각해보자.입력이 먼저 일어난 후, 출력이 되어야 한다.입력/출력이 번갈아가면서 진행되어야
IPC: Inter-Process Communication의 약자로서, 프로세스 사이의 통신이라는 뜻을 갖는다.프로세스들이 서로 통신한다는 의미통신이란 기본적으로 데이터를 주고 받는 행위이다.프로세스들이 서로 통신을 한다는 것은 둘 이상의 프로세스가 데이터를 주고 받는