본문 바로가기
면접을 위한 CS 전공지식 노트

2022.07.23

by 치우치지않는 2022. 7. 24.

p151~p200 

 

메모리 할당

-메모리에 프로그램을 할당할 때는 시작 메모리 위치, 메모리의 할당 크기를 기반으로 할당하는데 이는 연속 할당과 불연속 할당으로 나뉜다. 

-연속 할당은 메모리에 연속적으로 공간을 할당하는 것. 메모리를 미리 나누어 관리하는 고정 분할 방식과 매 시점 프로그램의 크기에 맞게 동적으로 메모리를 나눠서 사용하는 가변 분할 방식이 있다. 

-불연속 할당은 메모리를 연속적으로 할당하지 않는 것으로 현대 운영체제가 쓰는 방법인 페이징 기법, 세그멘테이션, 페이지드 세그멘테이션이 있다. 

 

<프로세스와 스레드>

-프로세스는 컴퓨터에서 실행되고 있는 프로그램을 말한다. 

-스레드는 프로세스 내 작업의 흐름이다. 

 

프로그램의 컴파일 과정

-프로세스의 상태는 여러 가지 상태 값을 가진다. (생성 상태, 대기 상태, 대기 중단 상태, 실행 상태, 중단 상태, 일시 중단 상태, 종료 상태)

프로세스의 메모리 구조

-PCB 는 운영체제에서 프로세스에 대한 메타데이터를 저장한 데이터

-컨텍스트 스위칭은 PCB 를 교환하는 과정 

-캐시미스 = 컨텍스트 스위칭에 드는 비용

-멀티 프로세싱 = 멀티프로세스를 통해 동시에 두 가지 이상의 일을 수행할 수 있는 것 

-멀티프로세스는 IPC 가 가능하며 IPC는 프로세스끼리 데이터를 주고받고 공유 데이터를 관리하는 메커니즘을 뜻함. IP
C의 종류:(공유 메모리, 파일, 소켓, 익명 파이프, 명명된 파이프, 메시지 큐)

-스레드 = 프로세스의 실행 가능한 가장 작은 단위 

-멀티스레딩 = 프로세스 내 작업을 여러 개의 스레드, 멀티 스레드로 처리하는 기법

-공유 자원: 시스템 안에서 각 프로세스, 스레드가 함께 접근할 수 있는 모니터, 프린터, 메모리, 파일 등의 자원이나 변수 

-임계 영역: 공유 자원에 접근할 때 순서 등의 이유로 결과가 달라지는 영역. 임계 영역을 해결하기 위한 방법(뮤텍스, 세마포어, 모니터)

-교착상태: 두 개 이상의 프로세스들이 서로가 가진 자원을 기다리며 중단된 상태 

 

<CPU 스케줄링 알고리즘>

-CPU 스케줄러는 CPU 알고리즘에 따라 프로세스에서 해야 하는 일을 스레드 단위로 CPU 에 할당함.

-비선점형 방식은 프로세스가 스스로 CPU 소유권을 포기하는 방식. 강제로 프로세스를 중지하지 않음. (FCFS, SJF, 우선순위)

-선점형 방식은 현대 운영체제가 쓰는 방식으로 지금 사용하고 있는 프로세스를 알고리즘에 의해 중단시켜 버리고 강제로 다른 프로세스에 CPU 소유권을 할당하는 방식(라운드 로빈, SRF, 다단계 큐)

 

<데이터 베이스의 기본>

- 데이터베이스 = 일정한 규칙, 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음 

-DBMS = 데이터 베이스를 제어, 관리하는 통합 시스템 

-데이터 베이스 안에 있는 데이터들은 특정 DBMS 마다 정의된 쿼리 언어를 통해 삽입, 삭제, 수정, 조회 가능 

-엔터티 = 여러 개의 속성을 지닌 명사. 약한 엔터티와 강한 엔터티가 있음. 

-릴레이션 = 데이터베이스에서 정보를 구분하여 저장하는 기본 단위. 엔터티에 관한 데이터를 데이터베이스는 릴레이션 하나에 담아서 관리함. 관계형 데이터베이스에서는 릴레이션을 테이블이라 하고 NoSQL 데베에서는 컬렉션이라 함. 

-속성: 릴레이션에서 관리하는 구체적이며 고유한 이름을 갖는 정보

-도메인: 릴레이션에 포함된 각각의 속성들이 가질 수 있는 값의 집합 

-레코드: 행 단위의 데이터

-필드: 행 단위 데이터의 이름 

-필드 타입의 종류 (숫자 타입, 날짜 타입, 문자 타입, TEXT 와 BLOB, ENUM 과 SET)

-관계: 데이터베이스에는 여러 테이블이 있을 수 있고 이 관계는 관계 화살표로 나타낸다. (관계의 종류: 1:1 관계, 1:N 관계, N:M 관계)

-키: 테이블 간의 관계 명확히 하고 테이블 자체의 인덱스를 위해 설정된 장치 (종류: 기본키, 외래키, 후보키, 슈퍼키, 대체키)

 

<ERD 와 정규화 과정>

-ERD 는 시스템의 요구 사항을 기반으로 작성되며 이 ERD 를 기반으로 데이터베이스를 구축함. 데이터베이스 구축 후에도 디버깅 또는 비즈니스 프로세스 재설계가 필요한 경우에 설게도 역할을 담당하기도. 

-정규화 과정: 릴레이션 간의 잘못된 종속 관계로 인해 데이터베이스 이상 현상이 일어나서 이를 해결하거나 저장 공간을 효율적으로 사용하기 위해 릴레이션을 여러 개로 분리하는 과정. 정규형 원칙을 기반으로 정규형을 만들어가는 과정. 정규화된 정도는 정규형으로 표현. 기본 정규형인 (제1, 제2, 제3 정규형, 보이스/코드 정규형)과 고급 정규형 (제4, 제5 정규형) 이 있음.

 

'면접을 위한 CS 전공지식 노트' 카테고리의 다른 글

2022.07.15  (0) 2022.07.16
2022.07.13  (0) 2022.07.14
2022.07.11  (0) 2022.07.12

댓글