전체 글 160

[운영체제] Microkernel에 관하여(개념 및 장단점)

운영체제 상에서 Microkernel은 커널의 필수적이 아닌 많은 부분을 사용자 공간으로 이동한 작은 커널을 의미한다. Microkernel은 사용자 모듈과 사용자 공간에서 수행하는 서비스 간의 통신기능을 제공한다는 점이 주요 기능이다. 이를 위해 message passing 방법을 사용한다. Microkernel은 Unix 커널이 확장됨에 따라 관리가 어려워지면서 개발되었다. Microkernel은 새로운 서비스는 사용자 공간에 추가된다는 점에서 확장이 용이하고, 아주 작은 커널의 특성상 운영체제에 이식이 용이하다. 그리고 사용자 프로세스에서 서비스가 실행되므로 높은 신뢰성과 보안성을 보장받는다. 그러나 시스템 함수의 오버헤드로 인한 성능 저하가 이루어질 수 있다는 점은 Microkernel 방식이 가..

Computer Science 2023.12.31

[운영체제] 운영체제의 설계원칙 : 기법(Mechanism)과 정책(Policy)에 대하여

운영체제를 설계할 때에는 설계목표와 명세(specification)이 올바르게 정의되어야 한다. 이를 위해서 하드웨어와 시스템 유형을 잘 파악하고 그에 맞는 운영체제를 설계하여야 한다. 사용자 측면에서는 사용하기 쉽고, 배우기 쉽고, 신뢰성이 있고, 안전하고, 빠른 것을 목적으로 하고, 시스템의 관리 측면에서는 설계및 구현, 그리고 유지보수가 쉬운 것을 목적으로 한다. 운영체제의 모든 요구 조건을 해결하는 완전한 해결책은 없지만, 다양한 요구조건에 대한 성공이 입증된 다양한 접근법은 있다. 바로 Mechanism과 Policy를 분리하여야 한다는 점이다. Mechanism은 어떻게 할 건지(How)에 대한 관점이다. mechanism은 정책 변경에 민감하지 않는 일반적인 것이 바람직하다. Policy는 ..

Computer Science 2023.12.30

[컴퓨터구조론] 보수 표현(1의 보수, 2의 보수) 에 대하여

음수를 컴퓨터로 표현하기 위한 방법으로서, 다음 세 가지의 방법을 이용한다. 1) 부호화- 크기 표현 2) 1의 보수 (1's complement) 표현 3) 2의 보수 (2's complement) 표현 이 중 1의 보수 표현은, 2진수로 수를 표현한 후 모든 비트를 반전시키는 방식이다. EX) +35 = 0 0100011 에서 비트 반전 >> -35 = 1 1011100 2의 보수 표현은, 1의 보수표현에서 1을 더하면 완료된다. -35 = 1 1011100 에서 1 더하기 >> 1 1011101

Computer Science 2023.12.29

[운영체제] Layered Approach에 대하여

Layered Structure는 Microsoft Dos와 Unix의 단점을 해결하기 위해 도입된 개념으로서, OS를 여러 Layer로 나누어 접근하는 구조이다. 가장 하위 계층인 Layer 0에는 하드웨어가 위치한다. 그리고 layer 1부터 user interface를 담당하는 layer N까지 여러 Layer들을 형성하여 구분한다. (이 때 각 layer는 각각 다른 기능들을 가지고 있다.)이를 통해 실행과 디버깅을 간단하게 진행할 수 있다. 하위계층의 연산이 어떻게 구현되었는 지를 알 필요가 없고, 하위계층 연산이 무슨 동작을 하는 지에 대해서만 알면 되기 떄문이다. 그러나 Layered Structure를 정의하는 것에 있어서 문제점이 존재한다. 특정 계층을 적절하게 정의하는 것에 있어서 어려..

Computer Science 2023.12.28

[운영체제] Storage 구조(주기억장치/보조기억장치)

저장장치는 주기억장치(Main Memory)와 보조 기억장치(Secondary storage)로 나뉜다. 주기억장치에서 CPU는 주기억장치만 메모리 주소를 통해 직접 접근 가능하다. 이 때 실행할 프로그램이 주기억장치에 적재되어야만 한다. 주기억장치로는 대부분 DRAM을 이용한다. (DRAM은 저장기간이 짧다) 주기억 장치는 모든 프로그램과 데이터를 주기억장치에 영구적으로 저장할 수 없다는 점에서 한계를 지닌다. 그 이유는, 기억 용량이 제한되어 있기 때문이기도 하고, power가 꺼진다면 휘발되는 주기억장치의 특성 때문이기도 하다. 보조 기억장치(Secondary storage)는 기억용량이 큰 비휘발성 저장장치를 제공한다. 주로 HDD(하드디스크 드라이브)를 사용하며, 최근 Flash 메모리를 사용하..

Computer Science 2023.12.27

[운영체제] Interrupt의 개념, 유형, 운영체제(OS, Operating System)에서의 interrupt의 역할

운영체제에서 Interrupt는 하드웨어 또는 소프트웨어에 의해 발생되어 CPU에 보내지는 신호이다. 즉각적인 처리를 필요하는 특수 상황이 발생했음을 알리는 역할을 한다. Interrupt는 다음과 같이 나뉜다. - Hardware intterrupt : 외부 입출력 장치에 의해서 발생(인터럽트 신호) >> 항상 발생 가능 interrupt 발생시 OS는 I/O handling 및 timer handling을 진행한다. - Software interrupt : OS 서비스를 요청하기 위해 SW에 의해서 발생한다. 특별한 instruction에 의해 사용된다. (=system query). interrupt 발생시 OS는 error handling을 진행한다. - Internal interrupt : CP..

Computer Science 2023.12.26

[컴퓨터구조론] CPU의 내부 구성요소에 대하여 (ALU, 레지스터 , 제어 유니트)

CPU의 구조는 크게 3가지라고 볼 수 있는데, 바로 산술논리연산장치(Arithmetic and Logicl Unit = ALU)와 레지스터, 제어 유니트이다. 1) ALU 각종 산술 연산들과 논리 연산들을 수행하는 회로들로 이루어진 하드웨어 모듈. 이 때 산술연산의 연산자로써, + , - , x , %가 있고, 논리연산의 연산자로써 AND, OR, NOT, XOR이 있다. 2) 레지스터 액세스 속도가 가장 빠른 기억장치이다. CPU 내부에 포함할 수 있는 레지스터의 수가 제한된다(특수목적용 레지스터들과 적은 수의 일반목적용 레지스터들) 3) 제어 유니트 프로그램 코드(명령어)를 해석하고 , 그것을 실행하기 위한 제어신호들을 순착적으로 실행하는 하드웨어 모듈이다

Computer Science 2023.12.25

[컴퓨터구조론] 시스템 버스에 대하여(주소버스, 데이터버스, 제어 버스)

CPU와 시스템 내의 다른 요소들 사이에 정보를 교환하는 통로로서, 시스템버스를 이용한다. 시스템버스의 기본 구성은 1) 주소버스 2) 데이터 버스 3) 제어 버스이다. 1) 주소 버스 CPU가 외부로 발생하는 주소 정보를 전송하는 신호 선들의 집합으로서, 주소 선의 수는 CPU와 접속될 수 있는 최대 기억장치의 용량을 결정한다. EX) 주소버스의 비트 수 = N이면, 2^N개의 기억장소의 주소 지정 가능 2) 데이터 버스 CPU가 기억장치 혹은 I/O 장치와의 사이에 데이터를 전송하기 위한 신호 선들의 집합이다. 데이터 선의 수는 CPU가 한번에 전송할 수 있는 비트 수를 결정한다. EX) 데이터 버스 폭이 N비트이면, CPU와 기억장치 간의 데이터 전송은 한번에 N비트씩 가능하다. 3) 제어 버스 C..

Computer Science 2023.12.24

[선형대수] 파이썬으로 그람-슈미트 과정을 통해 직교기저를 구하기, 행렬의 QR분해

(1)그람-슈미트 함수를 정의하여, 직교기저를 구하고, (2)4x3 행렬을 QR분해하는 예제이다(별개의 문제) 그람 슈미트 함수를 우선 정의해주었다. Q는 직교기저 행렬이다. 이 때 q는 배열 인덱싱을 사용하여 j을 열벡터를 할당시켜주었다. np.linalg.norm(q)는 벡터 q의 norm을 계산해주는 식이다. qr분해값은 numpy의 내장함수를 이용하여 쉽게 도출할 수 있다. 출력값은 이렇게 이루어진다. 직교기저와 qr분해 모두 정상적으로 이루어졌음을 확인할 수 있다.

Computer Science 2023.12.23

[선형대수] 파이썬으로 이산 퓨리에 변환 & 역 퓨리에 변환 구현하기

퓨리에 변환과 역 퓨리에 변환을 구현하는 예제이다. 함수를 구현하기 위해 numpy library를 import하고, DFT와 IDFT를 정의해주었다. DFT함수에서 N은 입력신호의 길이, n은 배열, k는 열벡터, M은 지수 행렬이다. 행렬은 M과 X를 내적한 값으로 이루어진다. IDFT함수에서도 마찬가지로 N,n,k는 동일하고, M도 DFT에서의 식과 유사하지만 N으로 나눈다는 점이 다르다. 행렬은 M과 X를 내적한 값으로 이루어진다. 저장된 DFT, IDFT값을 출력하여 값을 확인하였다.

Computer Science 2023.12.22
반응형