운영체제
시스템의 자원과 동작을 관리하는 소프트웨어
운영체제 역할
- CPU 스케쥴링 관리
- 메모리 관리
- 디스크 파일 관리
- I/O 디바이스 관리
CUP
- 중앙처리장치
- 산술논리연산장치, 제어장치, 레지스터(매우 빠른 임시기억장치)로 구성됨
- 인터럽트(어떤 신호가 들어왔을 때 CPU를 잠시 정지시킴)에 의해 단순히 메모리에 존재하는 명령어를 해석해서 실행
메모리
- 데이터나 상태, 명령어 등을 기록하는 장치
- RAM을 일컬어 메모리라고 함
메모리 계층
1. 레지스터
- 작은 메모리, 휘발성, 속도가 가장 빠르고 용량이 작음
2. 캐시
- 데이터를 미리 복사해 놓는 임시 저장소
- 병목현사을 줄이기 위한 메모리
- 휘발성, 속도빠름, 욕량 적음
3. 메모리/주기억장치
4. 저장창지/ 보조기억장치
- HDD / SSD를 말하며 휘발서, 속도 낮음, 기억용량 많음
메모리 구조
CODE
DATA
- 전역변수, 정적변수가 할당
- 정적인 특징을 갖는 프로그램이 종료되면 사라지는 변수가 들어있는 영역
HEAP
- 사용자가 직접 관리하는 영역으로 동적 데이터가 할당되는 공간
- 런타임 시에 크기가 결정되고 동적인 특징을 가짐
STACK
- 함수의 호출 정보, 지역변수, 매개변수들이 저장되는 공간
- 컴파일 시에 크기가 결정
- 스택영역은 동적으로 크기가 늘어날 수 있기에 힙과 영역이 겹치면 안돼서 힙과 스택 사이에 공간을 비워 둠
프로세스
- 컴퓨터에서 실행되고 있는 프로그램을 의미
- CPU 스케쥴링의 대상이 되는 작업
스레드
- 프로세스 내 작업의 흐름을 지칭
- 두개 이상의 스레드를 가지는 프로세스를 멀티 스레드 프로세스라고 부름
멀티 프로세스
- 프로그램을 여러개의 프로세스로 구성하여 각 프로세스가 하나의 작업을 처리
멀티스레드
- 프로그램을 여러개의 스레드로 구서하고 스레드가 작업을 처리하는 것
- 자원소모 감소, 비용감소,스레드간 자원 공유
- 동기화 이슈 발생
가상메모리
- 컴퓨터가 실제로 이용 가능한 메모리 자원을 추상화하여 이를 사용하는 사용자들에게는 매우 큰 메모리로 보이게 하는 것
- 프로세스에서 사용하는 부분만 메모리에 올리고, 나머지는 디스크에 보관하는 방법
컴파일러
- 오류 처리, 코드 최적화 작업을 하며 어셈블리어로 변환
쿠키
- 만료기한이 있는 키-값 저장소
- 사용자의 컴퓨터에 저장하는 기록 정보 파일
- 유효시간이 정해지면 브라우저가 종료되어도 유지
세션
- 사용자 정보 파일을 쿠키와 달리 서버에서 관리
- 서버에서는 클라이언트를 구분하기 위해 세션 ID를 부여하고 웹 브라우저가 서버에 접속해 브라우저를 종료할 때 까지 인증 상태 유지