Uni-programmingProcessor가 I/O 명령이 끝날때까지 기다리는 방식으로 하나의 process가 끝날때까지 CPU를 점유하고 있는 방식이다.그래서 Utilization이 좋지 않다. MultiprogrammingProcessor가 I/O 명령이 들어오면 진행 중이던 process가 다른 process에게 CPU를 넘겨주는 방식이다.(context switch)multiprogramming을 위해서는 memory space가 커야한다. 두 방식에 차이점을 알기 위해서 그림으로 비교해본다.위의 그림에서 보이는 것처럼 program A를 실행시켜서 I/O 명령이 들어오면 그 작업이 끝날 때까지 기다렸다가 A를 끝내고 나서 다른 program을 실행한다.반면에 아래의 그림처럼 multiprog..
A software that controls the execution of application programs애플리케이션 프로그램의 실행을 제어하는 소프트웨어 여기서 software는 모두가 program이 아니다. program은 독립적으로 실행할 수 있는 software로 software에 포함된 일부분이다. 운영체제는 program과 hardware 사이의 interface이다. 운영체제가 제공하는 기능은 무엇인가? - Program execution - Access to computer resources : HW, Data - Error Detection and response : 내부, 외부 HW error, SW error - Accounting : 통계자료 수집, 모니터링 Kernel이란?..
릴레이션(Relation) 개체를 표현하기 위한 데이터 구조 2차원 테이블로 표현 : 행(tuple), 열(attribute) 릴레이션은 튜플들의 집합(Set) 한 개의 릴레이션 스키마는 하나의 개체 클래스 또는 관계성 클래스를 표현 릴레이션 내포(Intension)는 표에서 주황색으로 된 부분을 나타낸다. 표기 방법은 R(A1,A2,...,An)으로 한다. R은 Relation, A는 Attribute 릴레이션 외포(Extension)은 표에서 튜플들의 집합을 나타낸다. 각 튜플들은 유일해야한다. 스키마 생성 create 명령어 : create 테이블명 ( 이름 데이터타입, 이름 데이터타입(길이), ex) accountId int, lastName varchar(32) 데이터 타입의 종류 Integri..
이번에 데이터 통신 과목을 배우게 되면서 리눅스를 사용하게 됐습니다. 그래서 찾아보던 중 UTM을 발견했고, 이를 통해서 ubuntu linux를 설치하기로 했습니다. 리눅스는 아래의 사이트에서 다운 받으면 됩니다. https://cdimage.ubuntu.com/releases/20.04/release/ Ubuntu 20.04.5 LTS (Focal Fossa) cdimage.ubuntu.com UTM은 앱스토어에서도 다운 받을 수 있고, 사이트에 가서도 다운 받을 수 있고, 명령어로도 다운 받을 수 있습니다. brew code만 살짝 올려두겠습니다. brew install --cask utm 이를 통해 UTM과 리눅스를 다운 받았다면 이제 UTM에서 VM을 생성하여 리눅스를 설치만 하면 됩니다. 우선..
일명 폭탄랩 - Carnegie Mellon University bomblab은 카네기멜런 대학에서 진행한 유명한 어셈블리 학습 및 분석 실습입니다. 필요한 부분만 해석하여 문제를 빠르게 풀어내는 것에 초점을 두었습니다. bomblab을 처음하는 사람에게 시작을 위해 도움을 줄만한 내용은 레지스터의 용도를 알고있는 것입니다. rax레지스터는 반환 값을 담는 레지스터이고, 파라미터로 사용되는 레지스터는 rdi, rsi, rdx, rcx라는 것 rsp는 스택포인터, rbp 베이스 포인터라는 것입니다. 밤랩을 공부하면서 대충 정리했던 내용도 첨부합니다. 교내 시프템 프로그래밍 수업의 실습에 참여했고, 2등으로 실습을 마무리하였습니다. 본인은 bomb13입니다.
DataLab이란? DataLab은 Carnegie Mellon University의 컴퓨터과학 학부에서 제공하는 프로그래밍 및 컴퓨터 아키텍처 교육 리소스입니다. DataLab은 학생들에게 컴퓨터 과학 및 컴퓨터 시스템의 기본 원칙을 가르치고 이해하는 데 도움을 주기 위해 고안되었습니다. DataLab은 컴퓨터 과학 교육의 일환으로 사용되며, 컴퓨터 시스템 및 소프트웨어에 대한 깊은 이해를 개발하는 데 도움을 줍니다. 깔끔한 코드인지는 모르겠으나.. 참고만 부탁드립니다. bitNor int bitNor(int x, int y){ return ~x & ~y; } bitNor함수의 경우는 NOR연산자를 구현하는 것입니다. 여기서 조건은 '|' 연산을 제외하고 구현해야합니다. 여기서는 드모르간 법칙을 사용하..
먼저, 아래의 식을 보면서 10진수를 R진수로 바꾸는 과정을 보겠다. 620을 예로 들어보겠다. R을 5라고 한다면, 아래와 같고, 위의 수식에 대입해보면 N=620, R=5, a3,a2,a1 = 4, a0=0이다. 이렇게 된 수식에서 5를 나누면 나머지는 0이다 그럼 a0자리의 계수가 된다. 몫은 124이고 이 몫을 다시 5로 나누면 24가 되고 나머지는 4이다. 따라서 나머지 4가 a1이다. 또 24를 5로 나누면 나머지가 4이고 a2의 값이된다. 그리고 나머지인 4가 a3의 몫이 된다. 이 과정을 미지수로 표현한 것이 위의 수식들이고 R로 계속해서 나누는 과정을 반복하는 것이다. 그렇다면 소수는 어떨까? 소수 부분은 나누는것 대신에 반대로 곱셈을 하는 것이다. R^-1, R^-2, R^-3...임으..