오늘 학습하는 컴퓨터 공학 기초 내용은 내용 자체가 낯설고 생소하기도 하고, 방대해서 집중이 잘 되지 않아 블로깅으로 간단하게 정리하면서 학습해보았다.
→ 운영체제는 시스템의 자원과 동작을 관리하는 소프트웨어로 프로세스, 저장장치, 네트워킹, 사용자, 하드웨어 등을 관리한다.
→ 메모리 공간 종류 : Code, Data, Heap, Stack
→ Code는 소스 코드가 들어가는 부분이고
→ Data는 전역변수, 정적변수가 할당되는 부분이다.
→ Heap은 사용자가 직접 관리하는 영역으로 데이터 동적으로 할당되는 공간이며
→ Stack은 함수의 호출정보, 지역변수, 매개변수들이 저장되게 된다.
→ 프로세스
: 실행중인 프로그램
→ 스레드
: 프로세스 안 실행 단위
→ 프로세스는 메모리와 CPU를 프로세스마다 할당받아서 사용하는데,
→ 스레드는 프로세스 안에서 다른 스레드와 메모리와 CPU를 공유해서 사용한다
→ 준비큐 있는 프로세스에 대해 CPU를 할당하는 방법
→ 크게 다섯가지가 있다(FCFS, SJF, SRT, Priority Scheduling, Round Bobin)
→ CPU 스케줄러 5가지(블로그 링크)
→ 사용하는 부분만 메모리에 올리고, 나머지는 디스크에 보관
→ 모든 프로세스에게 메모리를 할당하기에는 메모리의 크기가 한계가 있어서 사용하는 방법이다. 프로세스에서 사용하는 부분만 메모리에 올리고, 나머지는 디스크에 보관하는 기법을 가상 메모리하고 한다.
→ 프로세스가 자원을 얻지 못해 다음 작업을 못하는 상태
→ 예를 들어보면, P1과 P2가 각각 자원 A와 B를 얻어야되는데 P1이 A를 P2가 B를 가지고 있어서 서로 무한정 기다리는 상태를 데드락이라고 한다.
→ 데드락은 네 가지 조건이 동시에 발생해야 성립이 가능한데,
→ 그 4가지는 상호배제, 점유대기, 비선점, 순환대기
이다.
→ 데드락이란(블로그 링크)
→ 인코딩
: 어떤 문자나 기호를 컴퓨터가 이용할 수 있는 신호로 만드는 것이다.
→ 유니코드
:유니코드 협회가 제정하는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준이다.
→ UTF-8과 UTF-16
: 인코딩 방식
→ 문자열(유튜브 링크)
→ 가비지 컬렉션은 프로그램에서 더 이상 사용하지 않는 메모리를 자동으로 정리하는 것이다.
→ 메모리 관리
→ 가비지 컬렉터란(유튜브 링크)