💡 CPU의 동작 + 하드웨어 살짝
프로그램이 실행되는 과정:
- 프로그램이 시작되면 운영체제가 새로운 프로세스를 만들고 로더Loader로 저장장치(HHD)에서 메모리로 데이터를 복사해 가져온다. (메모리:복사본, HHD:원본)
- 이후 운영체제는 CPU에게 프로세스의 제어권을 넘긴다.
PC(program counter)가 CPU에게 전달되고 IR(기계어 코드)를 실행시킨다 - CPU 내의 레지스터(메모리)의 기능(PC, IR, SP, GPR, FG) 이 작동하게 되며,
운영체제로 부터 오는 모든 요청을 Fetch-Decode-Execute의 과정을 무한 반복하며 처리하게 된다.
Fetch : 메모리에서 코드를 가져와서 명령어 레지스터에 입력
Decode : CPU의 제어장치(Control Unit)가 명령어를 해석해서 CPU로 보냄
Excute : 연산
CPU를 조작하는 좋은 방법은 어셈블리어를 사용하는 것이다.
어셈블리어는 직접적으로 CPU의 레지스터에 접근할 수 있기 때문에 각 레지스터의 상태를 상펴 보면 현재 CPU가 어떤 상태인지 정확히 알 수 있다.
참고 : https://digiconfactory.tistory.com/entry/프로세스란-무엇인가-CPU의-동작-Process
*** 프로세서 vs 프로세스
프로세서는 중앙 처리 장치, 흔히 CPU라고 불리는 부품
하드웨어적 측면
- 컴퓨터 내에서 프로그램을 수행하는 하드웨어 유닛
- 중앙 처리 장치. 적어도 하나 이상의 ALU와 처리 레지스터를 내장한다
소프트웨어적 측면
- 데이터 포맷을 변환하는 역할을 수행. 데이터 프로세싱 시스템이다
프로세스는 메모리에 적재되어 프로세서에 의해 실행 중인 프로그램
운영체제가 분류, 상태 전이(state transition)로 관리하며, 5가지 상태를 가진다
- 생성 create : 프로세스 생성
- 실행 running : cpu를 차지해 명령어를 실행
- 준비 ready : 준비상태로 cpu할당을 기다리는 상태. 우선순위가 높은 순서대로 cpu를 할당받는다
- 대기 waiting : 입출력 완료, 시그널 수신 등 어떤 사건을 기다리고 있는 상태. 보류(block)라고 부르기도함.
- 종료 terminated : 프로세스 실행 종료
참고 : https://pongsi.tistory.com/entry/OS-프로그램과-프로세스의-차이-컴파일Compile-CPU-구성요소
DB
💡 Primary key가 무엇인지 설명해 주세요.
Primary key는 데이터베이스에서 각 테이블을 구별할 수 있는 유일한 값을 가지는 key를 말한다.
null값을 가질 수 없어(NOT NULL) 무조건 모든 테이블에 값이 존재해야하고, 중복되어 나타나지 않는 유일한 값이다.
*** 관계형 데이터베이스의 키Key 개념 및 종류 :
키(Key)는 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 Attribute(속성)입니다. (== 컬럼 column == 열)
- 후보키 (Candidate Key)
유일성과 최소성을 만족하는 속성 또는 속성들의 집합
수퍼키 중에서 최소성을 만족하는 것이 후보키가 된다 - 기본키 (Primary Key)
후보키 중에서 선택한 주키(Main Key)
한 테이블에서 특정한 컬럼을 유일하게 구별할 수 있는 속성
Null 값을 가질 수 없다 (개체 무결성의 첫번째 조건)
기본키로 정의된 속성에는 동일한 값이 중복되어 저장될 수 없다(개체 무결성의 두번째 조건) - 슈퍼키 (Super Key)
유일성의 특성을 만족하는 속성 또는 속성들의 집합
릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족시키지 못한다. - 대체키 (Alternate Key)
기본키로 선택되지 못한 후보키들 - 외래키 (Foreign Key)
어떤 릴레이션에 소속된 속성 또는 속성 집합이 다른 릴레이션의 기본키가 되는 키
다른 릴레이션의 기본키를 그대로 참조하는 속성의 집합이 외래키다. 외래키는 릴레이션들 사이의 관계를 올바르게 표현하기 위해 필요하다. 외래키로 지정되면 참조 테이블의 기본키에 없는 값은 입력할 수 없다.
정리 :
참고 : https://ddecode.tistory.com/entry/데이터베이스DB-4관계형-데이터베이스의-키key의-종류
'CS > computer science' 카테고리의 다른 글
[CS] 디자인 패턴 Design Pattern - 1 - (0) | 2024.02.16 |
---|---|
[기술면접] CS 문답 | os : memory (0) | 2023.08.24 |
[기술면접] CS 문답 | 멀티프로세스 상세 (0) | 2023.08.23 |
[기술면접] CS 문답 | 프로세스 vs 스레드, 동시성 병렬성 (0) | 2023.08.22 |
[기술면접] CS 문답 | 인스턴스 변수 인수 (0) | 2023.08.21 |