본문 바로가기
CS/computer science

[기술면접] cs 문답 | CPU process, 관계형DB KEY

by 째깍단 2023. 8. 25.

💡 CPU의 동작 + 하드웨어 살짝

 

프로그램이 실행되는 과정:

  1. 프로그램이 시작되면 운영체제가 새로운 프로세스를 만들고 로더Loader로 저장장치(HHD)에서 메모리로 데이터를 복사해 가져온다. (메모리:복사본, HHD:원본)

  2. 이후 운영체제는 CPU에게 프로세스의 제어권을 넘긴다.
    PC(program counter)가 CPU에게 전달되고 IR(기계어 코드)를 실행시킨다

  3. 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와 처리 레지스터를 내장한다

  소프트웨어적 측면

  • 데이터 포맷을 변환하는 역할을 수행. 데이터 프로세싱 시스템이다

출처 : https://pongsi.tistory.com/entry/OS-프로그램과-프로세스의-차이-컴파일Compile-CPU-구성요소

 

 

프로세스는 메모리에 적재되어 프로세서에 의해 실행 중인 프로그램


운영체제가 분류, 상태 전이(state transition)로 관리하며, 5가지 상태를 가진다

  • 생성 create : 프로세스 생성
  • 실행 running : cpu를 차지해 명령어를 실행
  • 준비 ready : 준비상태로 cpu할당을 기다리는 상태. 우선순위가 높은 순서대로 cpu를 할당받는다
  • 대기 waiting : 입출력 완료, 시그널 수신 등 어떤 사건을 기다리고 있는 상태. 보류(block)라고 부르기도함.
  • 종료 terminated : 프로세스 실행 종료

출처 : https://pongsi.tistory.com/entry/OS-프로그램과-프로세스의-차이-컴파일Compile-CPU-구성요소

 

참고 : https://pongsi.tistory.com/entry/OS-프로그램과-프로세스의-차이-컴파일Compile-CPU-구성요소

 

 

 

 

 


DB

 

💡 Primary key가 무엇인지 설명해 주세요.

 

Primary key는 데이터베이스에서 각 테이블을 구별할 수 있는 유일한 값을 가지는 key를 말한다.

null값을 가질 수 없어(NOT NULL) 무조건 모든 테이블에 값이 존재해야하고, 중복되어 나타나지 않는 유일한 값이다.

 

 

 

 

*** 관계형 데이터베이스의 키Key 개념 및 종류 :
키(Key)는 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 Attribute(속성)입니다. (== 컬럼 column == 열)

출처 : https://ddecode.tistory.com/entry/데이터베이스DB-4관계형-데이터베이스의-키key의-종류

 

  • 후보키 (Candidate Key)
    유일성과 최소성을 만족하는 속성 또는 속성들의 집합
    수퍼키 중에서 최소성을 만족하는 것이 후보키가 된다

  • 기본키 (Primary Key)
    후보키 중에서 선택한 주키(Main Key)
    한 테이블에서 특정한 컬럼을 유일하게 구별할 수 있는 속성

    Null 값을 가질 수 없다 (개체 무결성의 첫번째 조건)
    기본키로 정의된 속성에는
    동일한 값이 중복되어 저장될 수 없다(개체 무결성의 두번째 조건)

  • 슈퍼키 (Super Key)
    유일성의 특성을 만족하는 속성 또는 속성들의 집합
    릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족시키지 못한다.

  • 대체키 (Alternate Key)
    기본키로 선택되지 못한 후보키들

  • 외래키 (Foreign Key)
    어떤 릴레이션에 소속된 속성 또는 속성 집합이 다른 릴레이션의 기본키가 되는 키
    다른 릴레이션의 기본키를 그대로 참조하는 속성의 집합이 외래키다. 외래키는 릴레이션들 사이의 관계를 올바르게 표현하기 위해 필요하다. 외래키로 지정되면 참조 테이블의 기본키에 없는 값은 입력할 수 없다.

정리 :

출처 : https://ddecode.tistory.com/entry/데이터베이스DB-4관계형-데이터베이스의-키key의-종류

 

참고 : https://ddecode.tistory.com/entry/데이터베이스DB-4관계형-데이터베이스의-키key의-종류