반응형

컴퓨터 46

CVE (Common Vulnerabilities and Exposure)

https://cve.mitre.org/index.html CVE - Common Vulnerabilities and Exposures (CVE) CVE® is a list of entries—each containing an identification number, a description, and at least one public reference—for publicly known cybersecurity vulnerabilities. CVE Entries are used in numerous cybersecurity products and services from around the worl cve.mitre.org 공개적으로 알려진 소프트웨어의 보안 취약점을 가리키는 표기를 이야기한다. 보안 취..

컴퓨터/Etc 2020.04.20

[CA] Processor (1)

Logic Design Basics - 하드웨어는 간단한 블록으로 구성돼있다. 1. 그 블록은 논리 게이트라고 불림. e.g. AND, OR, NOT, NAND, NOR, XOR.. 2. 논리 게이트는 트랜지스터로 만들어졌다. 3. 트랜지스터는 펀더멘탈한 기기. - 디지털 논리 타입 (Digital logic types) 1. Combinatorial logic a. 인풋 데이터로 연산함. b. 아웃풋은 현재 인풋에만 의존함. c. 내부 스토리지가 없음. 2. Sequential logic a. 아웃풋은 현재 인풋과 인풋의 과거값에 의존함. b. 인풋의 과거값을 저장할 내부 스토리지가 필요함. - 스토리지 장치 (Register) 1. 이진수로 된 정보를 저장할 수 있는 회로. 2. Latch: 인풋이 ..

[CA] Arithmetic for Computer

Binary Substraction - 두번째 피연산자의 negation을 더하는 걸 생각. - 7 - 6 = 7 + (-6) - 결과값이 표현 범위를 벗어나면 overflow가 발생함. 1. 양수 두개를 빼거나, 음수 두개를 뺄 때는 overflow가 발생하지 않음. 2. 음수에서 양수를 빼거나, 양수에서 음수를 빼는 경우에 발생할 수 있음. Overflow of Unsigned Integers - Unsigned integers는 보통 overflow가 무시되는 메모리 주소에 사용됨. - 그러므로, 어떤 경우에는 overflow를 무시하고, 다른 경우에는 overflow를 인식할 수 있는 방법이 필요함. 1. add, addi, sub => overflow exception을 일으킴. 2. addu,..

[CA] Instructions: Language of Computer

ISA vs Microarchitecture - ISA: 하드웨어와 소프트웨어 사이의 인터페이스 - Microarchitecture 1. ISA를 만족하는만큼 구현이 다양함 2. 소프트웨어에 노출되지 않고 하드웨어에서 수행되는 모든 것 ISA: Language of Computer - Instruction Set Architecture (or Instruction Set) 1. 프로세서가 이해하는 기초적인 명령어 집합 - 다른 프로세서들 다른 명령어 집합을 갖고 있음 1. 하지만 다른 프로세서간 명령어 집합은 비슷함. (비슷한 원리에 기반, 컴퓨터가 반드시 제공해야하는 기초적인 연산 때문에) Arithmetic Instructions - 덧셈과 뺄셈은 세개의 피연산자를 갖고 있는 연산 1. 두개의 소스와..

[CA] Computer Abstraction and Technology

Important Concepts In Computer Architecture - 무어의 법칙을 고려한 디자인 - 디자인을 단순히 하기위해서 추상화(abstraction) 사용 - 일반적인, 흔한 경우에 빠르게 만드는 것 (Ahmdal's Law) - 병렬성, 파이프라이닝, 프레딕션을 통한 성능 향상 - 메모리 계층 구조 (Memory Hierarchy) - Dependability via Redundancy Abstraction - 추상화는 low-level의 detail을 숨겨줘서, complxeity를 해결해줌 - Instruction set architecture (ISA) - 하드웨어와 소프트웨어 사이의 인터페이스 High-level Language -> Instructions - Instruc..

[OS] Thread (2)

스레드가 어떤 모드에 있냐에 따라 '유저 레벨 스레드'와 '커널 레벨 스레드'로 나뉜다. 유저 레벨 스레드 (User-level Thread) - 유저 레벨 라이브러리로 구현한다. 라이브러리에는 스레드 생성/제거, 스케쥴링, 컨텍스트 저장/복구 등이 구현돼야한다. - 모든 코드와 데이터 스트럭쳐가 유저 스페이스에 존재한다. - 커널은 유저 스레드가 얼마나 돌아가는지 모른다. 커널의 입장에서는 하나의 프로세스로 보인다. 장점 - 운영체제가 커널 스레드를 지원하지 않아도 사용할 수 있다. - 커널 모드에 진입하지 않아도 된다. 스레드 스위칭에는 함수 호출만큼 코스트가 든다. - 스케쥴링 정책을 응용 프로그램에 맞춰 만들 수 있다. 각, 프로세스마다 폴리시가 있는 것으로 생각할 수 있다. 단점 - 스레드 하나..

[OS] Thread (1)

스레드가 왜 필요한가? - 하나의 프로세스에서 병렬 실행을 위해 - 동일한 환경에서 서로 다른 일을 동시적으로 처리할 수 있도록 동일한 환경 = 프로세스, 프로그램 코드, 데이터, 메모리 공간, 커널 데이터 구조 등을 말한다. 예) 웹 브라우저 스레드를 지원하지 않는 싱글코어 프로세서에서는 유저 인터페이스를 처리할 때는 렌더링이 안되고, 렌더링을 하는 동안에는 유저 인터페이스를 처리할 수가 없다. 즉, 내가 어떤 화면을 클릭해서 렌더링을 하는 동안에는 다른 모든 것 정지된 상태이고, 처리가 되지 않는다. 다른 것도 실행되게 만들어주려면 실행 흐름을 여러개 만들어주어야 한다. 스레드는 경량 프로세스라고도 불린다. 스레드는 스레드별로 스레드 아이디, 프로그램 카운터, 레지스터셋, 스택을 갖고 있다. 멀티 스..

[OS] Inter Process Communication (IPC)

유저가 실행시키는 프로세스들은 OS에서 동시적으로 돌아간다. 우리가 돌리는 프로세스들이 항상 독립적으로 돌아가는 것보다는 이들이 공유할 정보가 있다면 공유하고 협력한다면 효율을 더 높일 수 있는데, 이를 프로세스간의 커뮤니케이션을 통해 해결할 수 있다. 이를 'Inter Process Communication' (IPC) 라고 부른다. 프로세스가 협력을 하면 몇가지 장점이 있는데, 이는 다음과 같다. 프로세스 협력의 이점 Information sharing - 몇몇 응용 프로그램들은 비슷한 정보를 갖고 돌아간다. (복사하고 붙여넣는 경우를 생각해보면 된다.) Computation speedup - 어떤 태스크를 빠르게 수행하고 싶을 때, 이걸 여러 서브 태스로 나눠서 병렬적으로 실행할 수 있다. Moul..

[OS] Context Switch와 레지스터 셋의 관계

운영체제 수업 들으면 context switch가 오버헤드라는 이야기를 한다. 왜냐하면 context switch를 하는동안에는 프로세서가 하는 일을 멈추고 pcb를 바꾸기 때문이다. 이 오버헤드를 줄이려면 하드웨어단에서 개선을 해주어야 하는데, CPU의 레지스터셋을 늘려주어야 줄이는 것이 가능하다고 한다. 예를 들어서, CPU의 레지스터 셋이 두개인 경우에는 프로세스1에 대한 PCB1을 레지스터 셋1에 두고 연산을 한다고 생각해보자. 이때 인터럽트가 들어와서 프로세스1에서 프로세스2로 context switch를 수행하라고 하면, 레지스터 셋1에서 돌아가던 걸 잠깐 멈추고 미리 프로세스2에 대한 PCB2를 레지스터 셋2에 넣고 돌리면 된다. 그리고 프로세스2에 대해서 할 일을 다했으면 바로 프로세스1을..

반응형