분류 전체보기
-
System-Level I/O시스템 프로그래밍 2022. 4. 5. 14:56
Unix I/O Overview 리눅스 file은 일련의 byte의 연속입니다. 한마디로 byte덩어리의 배열과 비슷하다고 보면 됩니다. ex) B0, B1, ....,Bk (size는 모두 똑같습니다) 모든 I/O 장치들은 file로 표현되어있습니다. (disk, 터미널, 커널 등등) 우리가 보통 input이라고 하면 외부 장치(HDD, SDD, 터미널, 네트워크 등등)에서 main memory까지 데이터가 오는것을 의미하고 output은 main memory의 데이터를 외부 장치로 가는것을 말합니다. 우리는 printf나 scanf처럼 ANSIC에서 제공하는 standard I/O 라이브러리에 내재되있는 함수를 사용합니다. Unix는 시스템 레벨인 커널에 있는 Unix I/O함수 를 이용해 High-..
-
Introduction to SQL데이터 베이스 시스템 2022. 4. 4. 20:14
SQL Parts sql은 크게 DML과 DDL로 나뉩니다. DML : 데이터베이스에서 정보를 물을 수 있고, tuple을 삽입, 삭제 및 수정할 수 있는 기능이 있습니다. integrity : DDL에는 무결정 제약 조건을 지정하는 명령이 포함되어 있습니다. View definition : DDL에는 view를 정의하는 명령어가 포함되어 있습니다. Transaction control : transaction의 시작과 종료를 지정하는 명령어가 포함되어 있습니다. Embeded SQL and dynamic SQL : 일반적인 프로그래밍 언어에 sql문을 삽입하는 방법을 정의합니다. Authorization : relation 및 view에 대한 access 권한을 지정하는 명령이 포함되어 있습니다. Dat..
-
Database Design Using the E-R Model데이터 베이스 시스템 2022. 4. 2. 13:45
Design Phase Initial phase : 데이터 베이스 사용자가 필요로 하는 데이터를 파악합니다. Second phase : 데이터 모델을 선택합니다. 선택된 데이터 모델의 개념을 적용합니다. 이러한 requirenent들을 conceptual schema로 변환합니다. (ex : E-R 모델) 개발이 완료된 conceptual schema는 기업의 functional requirement을 나타냅니다. (데이터에 대해 수행되는 작업 또는 transaction의 종류를 설명합니다. Final Phase : 추상적인 data model에서 데이터베이스 구현으로 이동합니다. Logical Design : 데이터베이스의 schema 결정, 데이터베이스 설계에서는 relation schema의 경우 ..
-
Chapter 5 : Machine-Level Programming 1 (Basis)컴퓨터 시스템 개론 2022. 3. 30. 21:06
Compilation System C(high-level)로 작성된 프로그램이 CPU가 읽을 수 있는 binary cord로 변환되는 과정입니다. Turning C into Object Code 파일 p1.c와 p2.c를 리눅스 쉘에서 컴파일한다고 가정해보자 리눅스 명령어에 gcc -Og -o p p1.c p2.c 를 입력합니다. gcc는 gcc 컴파일러를 가리킵니다. -Og는 최적화의 단계를 적용하는 컴파일러를 가리킵니다. -O1, -O2, -O3 까지 있으며 각각 최적화 LEVEL 1, 2, 3를 의미합니다. LEVEL이 높아질 수 록 최적화의 정도가 높아집니다. 하지만 O3 정도되면 최종 실행파일이 더빠르게 실행되지만 source code와 machine code의 관계를 이해하기 어렵습니다. 따라..
-
Exceptional Control Flow : Signals and Nonlocal Jumps시스템 프로그래밍 2022. 3. 29. 01:33
Shell 리눅스 process의 hierarchy입니다. init에서 시작해 tree구조로 되어있습니다. Shell이란 user대신에 프로그램을 실행시키는 응용 프로그램입니다. 즉, 사용자와 OS kernel의 interface로 shell은 OS 에서 사용자의 명령을 받아 읽고 해석해 Hardware에게 명령을 내리는 것입니다. 예를 들어 unix shell이나 C shell, bash 등등 이 있습니다. shell은 기본적으로 2가지로 실행됩니다. 바로 command를 읽는 read 부분과 입력받은 command를 실행하는 evaluate부분 입니다. Simple Shell 입력받은 command를 실행(evaluate)하는 부분입니다. command에는 총 2가지 유형이 있습니다. 1) Foreg..
-
Chapter 3 : Float컴퓨터 시스템 개론 2022. 3. 27. 18:24
1011(Integer part).101(Decimal part) 소수점 기준으로 왼쪽은 정부부분, 오른쪽은 실수부분입니다. ex) 5 + 3/4 = 101.11(2) 2 + 7/8 = 10.111(2) 1 + 7/16 = 1.0111(2) Floating Point(부동 소수점) Representation 좀더 정확한 수를 표현하기 위함입니다. 부동소수점 표현 방식 실수형 (부동 소수점) 실수형 float를 공부하다 부동소수점 개념이 나와서 한번 이해하는대로 정리해 보려합니다. 먼저 예를 들어 실수 263.3을 2진수로 나타내 보면 정수 부분 263 = 100000111 실수 부분 0.3 = 0.01(0011)(0011)(001 riveroilstone.tistory.com 맨 위에 있는 것이 보통 f..
-
Chapter 2 : Instructions : Language of the Computer컴퓨터 아키텍쳐 2022. 3. 24. 00:53
Instructions 일의 기본 단위입니다. CPU에서 실행되는 동작 또는 동작코드입니다. instruction은 순차적으로 실행됩니다. 즉, CPU가 다음을 loop를 돌면서 실행합니다. 1. Fetch instrucion (명령어 가져오기) 2. Decode Instruction (명령어 해석) 3. Read source operands (명령어 소스 연산 읽기) 4. Execute (실행) 5. Write destination operand (연산의 목적지 쓰기) 6. Compute next PC (다음 PC를 계산) Assembly and Binary code Assembly binary 코드가 텍스트 형식 컴퓨터 하드웨어는 이해하지 못함 순차적인 instruction Binary code 순차..
-
Chapter 2 (Bits, Bytes, and Integers)컴퓨터 시스템 개론 2022. 3. 22. 01:02
Binary Representation Bit : 두가지 형태로 나타냅니다 (0 or 1) Representing Information ... Encoding Byte Values Byte = 8 bits Binary : 00000000(2) to 11111111(2) Decimal : 0(10) to 255(10) Hexadecimal : 00(16) to FF(16) 우리가 C언어 에서 보는 0x 또는 0X로 시작하는 수들은 Hexadecimal 표기법입니다. 0xFA1D378B = 0Xfa1d37b 즉 대소문자 구분이 없습니다. 예를들어 10진수 314156을 16진법 표기법으로 나타내면 314156 = 19634 * 16 + 12 (C) 19634 = 1227 * 16 + 2 (2) 1227 = ..