컴퓨터는 잘못이 없다..

[컴퓨터 공학] 컴퓨터구조, 운영체제 복습 본문

공부/컴퓨터공학

[컴퓨터 공학] 컴퓨터구조, 운영체제 복습

도토리까꿍v 2024. 5. 12. 18:05
Contents 접기

1. 주기억 장치에 속하는 것

레지스터, SRAM, DRAM

 

2. 보조기억장치에 속하는 것

하드디스크, USB, Bluray

 

3. 플립플롭의 종류

SR flip-flop, D flip-flop, JK flip-flop

 

4. CPU의 구성요소?

PC, MAR, MBR

 

5. 레지스터에 대한 기능

Program Counter는 다음 수행될 명령어가 들어있는 주기억장치의 주소를 기억하고 있다.

Instruction Register는 PC가 지정하는 주소에 있는 명령어를 임시 기억하고 있다.

status register는 CPU의 상태를 나타내는 flag 정보를 저장한다.

 

 6. CPU 디자인

레지스터들을 직접 연결 하면 장치 수의 제곱에 비례하는 복잡도가 발생한다.

Common Bus line을 이용해서 레지스터들을 연결하면 MUX를 이용해서 손쉽게 구현할 수 있다.

Common Bus line을 이용해서 레지스터들을 연결할 때 Decoder를 이용해서 구현할 수 있다.

 

7.  ALU에 포함되는 마이크로 연산

ADD, XOR, INC

 

8. 입출력 구성

키보드로 입력한 내용은 Serial communication interface를 통해서 레지스터로 정보를 전달한다.

OUTR, AC, INPR, FGI는 모두 병렬로 연결되어 있다.

OUTR를 통해서 데이터가 output device로 전송된다.

 

9. IEN(Interrupt Enable filp-flop)

FGI를 이용한 방식은 프로세스와 입출력장치의 속도가 차이가 많이 나서 비효율적이기 때문에 IEN 방식이 제안되었다.

플래그를 이용하지 않고, 외부장치가 준비가 되었을 때 interrupt를 발생시키는 방법이다.

컴퓨터는 실행하면서 플래그를 체크하지 않고, 플래그가 interrupt로 인해 세팅되면 그 때 입출력을 실행한다.

 

10. 프로그램의 종류

컴퓨터 소프트웨어는 크게 시스템 소프트웨어와 응용 소프트웨어로 나눌 수 있다.

운영체제, 프로그래밍언어 번역 프로그램은 모두 시스템 소프트웨어에 해당한다.

일반적으로 사용하는 Web Browser, 메신저 프로그램, 오피스 프로그램은 모두 응용 소프트웨어에 속한다.

 

11. C언어

컴파일 언어

 

12. 프로그램 처리 과정

C언어 같은 고급 언어를 이용하여 작성한 프로그램은 어셈블리 프로그램으로 변환된다.

어셈블리 프로그램은 mnemonic을 이용하여 명령을 표시한다.

최종 기계어로 번역된 프로그램이 실제 CPU에서 수행된다.

 

13. 소프트웨어 개발 패러다임

구조적 기법은 가장 초창기에 사용한 기법으로 함수들을 기준으로 프로그램을 작성하였다.

객체지향 기법은 객체 단위로 프로그램을 단위화하여 캡슐화, 상속 등을 사용하여 재사용성을 가능하게 하였다.

컴포넌트 기법은 interface를 통하여 외부와 쉽게 동작할 수 있고, 단순하게 통신 할 수 있게 하였다.

 

14. 컨텍스트 스위칭 동작의 각 단계

1단계: 실행 중지할 프로세스의 PCB 에 현재 CPU의 PC와 SP 레지스터 값을 저장한다.

2단계 : 커널모드 전환: 프로세스 P0이 사용자 모드(executing)에서 커널모드(idle)로 전환(프로세스 P0이 CPU 점유에서 대기로 상태 변경)

3단계: 읽어온 다음 실행할 프로세스의 기존 PC와 SP 값을 CPU의 해당 레지스터에 업데이트한다.

4단계 : 다음 실행할 프로세스를 CPU에서 실행한다.

 

15. 프로세스간 커뮤니케이션

프로세스는 기본적으로는 다른 프로세스의 사용자 영역 공간을 직접 접근할 수는 없다,

 

16. fork() 함수

기본적으로 프로세스 생성시, 리눅스(유닉스 계열)에서는 최초 프로세스를 제외하고는, fork() 시스템콜을 사용해서, 부모 프로세스를 복사하여, 자식 프로세스를 생성한다.

 

17. IPC 

IPC 는 InterProcess Communication 의 약자로, 프로세스간 커뮤니케이션 기법을 의미한다.

파일을 사용하는 방법도 기본적으로 IPC 기법 중 하나가 될 수 있다.

Message Queue도 기본적으로 IPC 기법 중 하나가 될 수 있다.

 

18. IPC 기법 종류

 pipe, 세마포어, 소켓

 

19. IPC 기법

파이프는 기본적으로는 단방향 통신을 지원한다.

메세지 큐는 기본적으로는 FIFO 정책으로 데이터를 전송한다.

시그널은 다른 프로세스에 어떤 이벤트가 발생되었는지를 알려주는 기법이다.

 

20. 쓰레드

기본적으로는 하나의 프로세스에서는 여러 개의 쓰레드를 생성할 수 있다.

쓰레드들 간에는 동일 프로세스의 데이터를 접근할 수 있다.

쓰레드는 Light Weight Process 라고도 불리운다.

 

21. 쓰레드의 장단점

쓰레드의 장점으로는 쓰레드간 커뮤니케이션시 IPC 와 같은 기법을 사용할 필요가 없다라는 점이다.

쓰레드의 장점으로는 사용자에 대한 응답성을 향상시킬 수 있다라는 점이다.

쓰레드의 단점으로는 하나의 프로세스에 생성된 쓰레드들중 하나만 문제가 있어도, 해당 프로세스 전체에 영향을 받을 수 있다는 점이다.

 

22. 쓰레드 동기화 이슈

동기화 이슈를 해결하기 위한 방안으로 Mutual Exclusion 이 있음

Semaphore 를 동기화 이슈를 해결하는데 활용할 수 있음 

기본적으로 동기화 이슈 해결방안은 어느 한 쓰레드가 공유 자원 처리 시, 다른 쓰레드가 동시에 접근하지 못하도록 막는 것이다.

 

23. 교착상태와 기아상태

기아상태는 특정 프로세스의 우선순위가 낮아서 원하는 자원을 계속 할당 받지 못하는 상태를 의미한다.

교착상태는 여러 프로세스가 동일 자원 점유를 요청할 때 발생한다.

기아상태는 여러 프로세스가 부족한 자원을 점유하기 위해 경쟁할 때, 발생할 수도 있다.

 

24. 가상 메모리

메모리가 물리 메모리보다 많아 보이게하는 기술로, 프로세스가 여러개라도 실제 특정 시점에 사용하는 메모리는 작다는 점에 착안한 것이다.

 

25. MMU

CPU에 코드 실행시, 가상 주소 메모리 접근이 필요할 때, 해당 주소를 물리 주소값으로 변환해주는 하드웨어 장치이다.

 

26. 페이징 시스템

페이징 시스템은 구현을 위해 하드웨어 지원이 필요하다.

동일한 크기의 페이지를 기반으로 가상 주소와 물리 주소를 매핑하는 방식을 사용한다.

가상 주소는 가상 메모리 페이지(p)와 p 안에서 참조하는 변위(d) 로 계산되어, 특정 주소를 가리킬 수 있다.

 

27. 페이징 시스템의 각 단계(1단계~4단계)

1단계: 해당 프로세스에서 특정 가상 주소 접근을 시도한다.

2단계 : 해당 프로세스의 데이터 영역에서 Page 번호를 확인한다.

3단계: 해당 Page 가 물리 메모리에 있으면, 해당 페이지의 첫부분을 가리키는 물리 주소를 Page Table에서 알아낸다.

4단계: 해당 페이지의 첫부분을 가리키는 물리 주소에 변위값을 더해서, 가상 주소에 해당하는 물리 주소를 접근한다.

 

28. 프로세스 구동시, 해당 페이지 테이블의 base 주소가 저장되는 레지스터

CR3

 

29. TLB

TLB 는 Translation Lookaside Buffer

컴퓨터의 메모리 관리에서 사용되는 중요한 개념입니다. TLB는 가상 주소를 물리 주소로 변환하는 데 사용되는 캐시 메모리입니다.

 

30. 요구 페이징

프로세스 모든 데이터를 메모리로 적재하지 않고, 실행 중 필요한 시점에서만 메모리로 적재하는 기법44

 

31. 페이지 폴트

향후에 프로세스가 접근할 페이지들은 미리 물리 메모리에 넣어놓는다면, 페이지 폴트를 줄일 수 있음

 

32. 페이지 교체 정책

OPT (OPTimal Replacement Algorithm)

LRU (Least Recently Used)

NUR (Not Used Recently)

 

33. LFU 알고리즘

가장 적게 사용된 페이지를 교체하는 정책

 

34. 스레싱

반복적으로 페이지 폴트가 일어나서, 과도하게 페이지 교체 작업이 일어나, 실제로는 아무일도 못하는 상황

 

35. 세그멘테이션 기법

서로 크기가 다른 논리적 단위인 세그먼트로 분할하여 가상 메모리를 관리하는 기법

 

36. inode 방식의 파일 시스템

수퍼 블록, 아이노드 블록, 데이터 블록으로 나눠서 파일을 관리하는 시스템

 

37. 가상 파일 시스템

네트워크등 다양한 기기도 동일한 파일 시스템 인터페이스를 통해 관리가 가능토록 하기 위해 고안된 시스템이다.

 

38. 디렉토리 엔트리

디렉토리 엔트리란 디렉토리를 표현하는데 쓰이는 자료구조를 의미한다.

 

39. 다중 단계 페이징 시스템

필요없는 페이지를 생성하지 않도록 하여, 공간 절약과 성능에도 도움이 되도록 하는 시스템

 

40. CPU 코드 실행 중 메모리 접근시, 가상 주소와 물리 주소를 변환해주는 하드웨어 장치 

MMU

 

41. 프로세스 구동 시, 가상주소와 물리주소 매핑 정보를 다루기 위해, 페이지 테이블의 base 주소값을 넣게 되는 CPU 레지스터 이름

CR3

Comments