DKU 16

[컴구] 7-2 디지털 로직 (Digital Logic)

디지털 회로 구분 디지털 회로의 종류는 2가지로 나누어 진다. 1. 조합 회로 (Combinational circuits) 조합 회로의 output은 오직 현재 회로 input들의 조합에 의해서만 결정된다. 조합회로에 같은 input이 들어온다면 항상 같은 ouput을 낸다는 특징이 있다. AND, OR, NOR, NAND, NOT 게이트들의 조합으로 구성되어 있다. 2. 순차 회로 (Sequential circuits) 순차 회로의 output은 현재 회로 input들과 회로의 상태 (혹은 과거 input들의 배열)에 의해서만 결정된다. 순차 회로는 플립플랍이나 레지스터와 같이 '상태'를 저장할 필요가 있는 메모리 구성요소들에 쓰인다. 또한, output 값이 상태에 영향을 미치기 때문에 같은 inpu..

DKU/컴퓨터구조 2022.11.29

[시프] 4-3 스택(stack)

01 스택이란? LIFO(Last In First Out) 특성을 가진 메모리 공간의 배열이다. stack에서 사용하는 operation에는 push와 pop이 있다. 그리고 stack은 bottom과 top으로 다루며, 이는 intel에서의 SS와 ESP이다. 02 intel 구조에서의 stack stack을 다루기 위해 사용되는 push와 pop은 실제로 intel에서 어떻게 구현될까? 먼저 ESP에 대해 알아야한다. ESP란 Extended Stack Pointer의 약자로, stack에서 가장 마지막으로 push된 item의 위치, 즉 top을 가리키는 레지스터이다. stack은 바로 이 ESP 레지스터를 이용한 push와 pop 메소드 사용으로 관리된다. push는 ESP가 감소하고 stack의..

[시프] 4-2 프로세스 구조

01 개념적 구조 프로세스에는 크게 text(code), data, heap, stack으로 영역이 나누어진다. 다음은 가상 메모리의 주소 공간을 나타낸 그림이다. 02 C프로그램으로 보는 프로세스 구조① (function pointer) #include int a = 10; int fun1(int arg1) { printf("fun1에서의 arg1 = %d\n", arg1); } int main() { int *pa; int (*func_ptr)(int); pa = &a; printf("a의 주소를 가리키는 포인터 pa = %p\n", pa); printf("포인터 pa안에 들어있는 값 *pa = %d\n", *pa); fun1(3); func_ptr = func1; func_ptr(5); printf..

[시프] 4-1 프로세스의 정의

01 process란? 프로세스는 다음과 같이 정의될 수 있다. 1. 수행 중인 프로그램 2. 자신만의 메모리 공간과 CPU를 가지고 있음 3. 스케쥴링의 대상 (scheduling entity) 4. 자원 할당을 위해 서로 경쟁 5. 부모-자식 관계 구성 (parent-child relation, family) 그렇다면, 프로세스(process)와 프로그램(program)의 차이는 무엇일까? Process(Task)는 active한 객체로, 메모리와 CPU 상에 올라가서 동작한다. Program은 passive한 객체로, 일종의 파일(binary)이라고 할 수 있다. 02 관련 용어(terminology) Load는 프로그램을 disk에서 main memory로 올리는 것을 의미한다. Load 구현을 ..

[시프] 3-2 disk를 위한 시스템 프로그램 ①

① disk device driver 정의 disk라는 장치를 관리하는 소프트웨어으로, 물리적인 disk를 논리적인 disk로 추상화한다. 이때, 논리적인 disk는 disk block들의 집합이라고 할 수 있고, disk block의 크기는 page의 크기와 동일하다. (4 or 8KB) (logical disk : 디스크를 네모 박스들이 쭉 있는 원기둥으로 생각하는 것이다.) 하는 일 disk command를 처리한다. 이외에도 disk initialization (디스크 초기화), scheduling (seek time 최적화), error handling, 등의 작업을 한다. * ATA command (Advanced Technology Atatchment) : type, start, size, ..

[시프] 3-1 disk의 구조

01 디스크의 구성요소 : Platter, Spindle, Surface / Track, Sector, Cylinder / Head, ARM Platter (원판) disk는 기본적으로 레코드판처럼 생긴 원판이 여러개 쌓여있는 형태이다. 원판의 개수는 disk 용량에 따라 다르다. Spindle (축) disk는 동작할 때 회전하면서 사용되고, 원판은 축을 중심으로 회전한다. Surface (표면) 실제 data를 저장하는 곳이다. 원판의 위아래 총 2곳에 데이터를 저장한다. 3개의 원판 → 6개의 표면 Track (동심원) 동심원은 원판(platter)마다 몇 천 개씩 그려져 있고, 각 동심원을 트랙이라고 부른다. Sector (섹터) track은 sector로 나누어져 있다. ‘disk는 sector..

[시프] 1-2 시스템 프로그램의 종류 ③

③ Runtime System (종류) 01 command (명령어) - file related : ls, cat, more, cp, mkdir, cd, … - task related : ps, kill, jobs, … - utility : vi, gcc, as, make, tar, patch, debugger, … - management : adduser, passwd, ifconfig, mount, fsck, shutdown, … (은행관련) - others : man, file, readelf, grep, wc, … 02 shell - command interpreter (명령어 해석기) - pipe, redirection, background processing - shell script prog..

[시프] 1-2 시스템 프로그램의 종류 ②

② Operating System (운영체제) 01 운영체제 내부 구조와 7가지 주요 구성요소 Process Manager : 프로세스 관리 Virtual Memory : 메모리 관리 File System : 영속성 제공, 파일 관리 Device Manager : 장치 관리 (block-HDD, character-키보드, 마우스) Network Manager : 통신 프로토콜 Hardware Interface (HAL; HW Abstraction Layer) : 하드웨어 추상화 System Call Interface : OS가 사용자 프로그램에게 서비스를 제공할 때 잘 정의된 인터페이스(API)를 제공하는데, 이때의 API를 System Call이라고 부른다. (라이브러리, 프레임워크 등도 API를 제공..

[시프] 1-2 시스템 프로그램의 종류 ①

시스템 프로그램의 종류 1. compilation system (번역 시스템) 2. Operating system (운영체제) 3. Runtime system (런타임 시스템) 4. Hardware consideration (하드웨어 고려) ① Compilation System (번역 시스템) 01 언어 계층 구조 번역 시스템의 concept은 언어 계층 구조로, high-level 언어를 기계어로 바꿔주는 시스템이다. 02 전체적인 구조와 6가지 중요 구성요소 1. Editor : 편집기를 사용해서 C 프로그램을 만든다. - C File : 만들어진 C 프로그램은 input으로 compiler에 들어간다. 2. Compiler : C 프로그램을 어셈블리어로 바꾼다. - Error Msg : 에러가 있으..

[시스템프로그래밍] 1-1 시스템 프로그램의 정의

컴퓨터 구성요소 하드웨어 구성요소: PC CPU (중앙처리장치) Main memory (주기억장치) - 데이터 저장, 처리 Secondary storage (보조기억장치) - ex) HDD, CD Input device - ex) 마우스, 키보드 Output device - ex) 모니터, 프린터기 Communication device (통신장치) - ex) 이더넷, 블루투스 DRAM과 Disk의 차이 DRAM(Dynamic Random-Access Memory)로 메인 메모리로 쓰이고, Disk는 보조기억장치로 쓰인다. 속도 (speed) - DRAM에 있는 데이터에 접근시 걸리는 시간 : 100 ns (ns : 10^-9) - Disk에 있는 데이터에 접근시 걸리는 시간 : 10 ms (ms : 10..