운영체제
→ 시스템의 자원과 동작을 관리하는 소프트웨어 인데요, 프로세스, 저장장치, 네트워킹, 사용자, 하드웨어등을 관리하게 됩니다.
메모리 구조
→ 메모리에는 크게 4가지 종류의 공간이 있습니다. 코드, 데이터, 힙, 스택이 있구요. 각각 Code는 소스코드가, 데이터에는 전역변수와, 정적변수가 할당 됩니다. 힙은 사용자가 직접 관리하는 영역으로 데이터가 동적으로 할당되고, 스택에는 함수의 호출정보 지역변수, 매개변수 등이 저장되게 됩니다.
프로세스와 스레드
→ 프로세스는 실행되는 프로그램의 단위 입니다. 스레드는 프로세스 내부에서 실행되는 흐름 단위 입니다. 프로세스는 메모리와 CPU를 프로세스마다 독립적으로 할당받아서 사용하는데, 스레드는 프로세스 안에서 다른 스레드와 메모리, CPU를 공유해서 사용합니다. 다만 Stack영역은 스레드마다 독립적으로 할당받아 사용합니다.
CPU 스케줄러
→ 준비큐에 있는 프로세스 대해 CPU를 할당하는 방법입니다. 비선점 방식과 선점 방식이 있고, 비선점 방식에는 FCFS, SJF 선점방식에는 SRT, RR, Priority Scheduling방식이 있습니다.
가상 메모리
→ 모든 프로세스에게 메모리를 할당하기에는 메모리의 크기에 한계가 있어 사용하는 방법입니다. 프로세스에서 사용하는 부분만 메모리에 올리고, 나머지는 디스크에 두는 기법을 가상 메모리 라고 합니다.
데드락
→ 데드락은 프로세스가 자원을 얻지 못해, 다음작업을 못하는 상태입니다.
예를들어, 프로세스1과 프로세스2가 각각 자원 A와 B를 얻어야 되는데, 프로세스1은 B를 프로세스2는 A를 가지고 있어서 서로 무한정 기다리는 상태를 데드락이라고 합니다.
데드락은 다음의 네가지 조건이 동시에 발생해야 성립하는데요, 그 네가지 조건은 상호배제, 점유대기, 비선점, 순환대기 입니다.
유효주소
→ 유효주소는 데이터가 저장된 메모리의 주소를 의미합니다.
CPU에서 주소 지정방식을 통해 유효주소에 접근하게 됩니다.
주소 지정방식이란 명령어가 처리해야 되는 데이터의 유효주소를 어떻게 저장하느냐가 주소지정방식입니다. 대표적으로 두가지 직접주소지정방식과 간접 주소 지정방식이 있습니다.
직접주소지정방식은 명령의 주소값에 바로 유효주소를 지정하는 방법이며, 메모리 접근시 한번에 데이터에 접근이 가능합니다.
간접주소 지정방식은 명령어의 주소값에 데이터가 저장된 유효주소가 저장되있는 메모리의 주소를 간접적으로 저장하는 방법입니다. 때문에 데이터에 접근하기 위해 최소 2번의 참조가 발생하게 되는 방식입니다.
CPU명령어 주소필드의 길이가 짧고 제한적이라 메모리의 주소필드 길이와 차이가 날 경우 사용하면 좋습니다.
운영체제란?
실행 파일 생성 과정
프로그램 실행 과정
캐시란?
캐시라인
메모리구조
프로세스, 스레드
스레싱이란?
IPC란?
Race Condition?
User, Kernel 스레드 차이
가상 메모리