전공 49

Linux3) 리눅스 사용자 계정

1. 사용자 계정이란 컴퓨터라는 것은 실물 세계에 있는 것을 가상 세계로 연결해준다고 볼 수 있다. 사용자라는 것은 컴퓨터에서 사용자 계정을 말하는 것이다. 사용자 계정은 user ID(UID)라는 것을 통해 시스템에 존재한다. UID로 구현된 사용자는 실제로 시스템에서 UID를 가지고 유지가 된다. 사용자가 로그인할 시 shell이라는 것이 실행된다. 커널을 둘러싼 것이 shell인데 shell은 사용자가 입력한 명령어를 해석해서 커널에게 전달한다. 커널이 리턴하는 값을 shell이 사용자에게 전달한다(화면에 뿌려준다.) 각각의 리눅스의 각각의 프로세스는 로그인한 해당 프로세스를 실행시킨 사용자 아이디인 UID와 실제로 연결되어 있다. 사용자는 UID로 시스템에 저장되지만 우리는 UID를 사용하지 않고..

Linux2) 프로세스

1-1 유닉스에서 프로세스 유닉스 프로세스는 필요에 따라 다른 프로세스를 생성한다. 다른 프로세스를 생성한 프로세스를 부모 프로세스라고 하고 생성된 프로세스를 자식 프로세스 라고한다. 각 프로세스는 고유의 번호 PID를 가지고 있다. 유닉스가 부팅 될 때 모든 프로세스의 조상 프로세스인 init 프로세스가 있는데 고유번호는 1번이다. 1-2 프로세스 OS에서 실행중인 프로그램을 말한다. 디스크에 있는 프로그램 명령어는 실행이 되면 메인 메모리로 load되어 프로세스가 된다. 1-3 데몬 프로세스 유닉스 커널에 의해서 실행되는 프로세스로 특정한 서비를 제공하기 위해 존재한다. 예를 들어 웹 서비스를 제공하기 위해 httpd 프로세스가 동작해야한다. httpd 프로세스를 데몬 프로세스라한다. 데몬은 평소에 ..

Linux1) 리눅스 파일

시스템 프로그래밍 포스팅의 Linux1,2,3) 은 시스템 프로그래밍을 위해 필요한 기본 리눅스 개념만 정리한 것이다. 1-1. 파일 디스크립터 파일 디스크립터란 open을 통해 열면 리턴되는 값으로 파일 디스크립터 정수 값이 리턴되는데 그 값은 open으로 연 해당 파일을 가리키고 있으며 파일 디스크립터에는 다양한 정보를 담고 있다. 1-2. System call: open 파일을 열면 처음부터 읽을 수 있고 중간부터 읽을 수 있다. (사용자가 지정할 수 있다.) 하지만 파일을 열 때 따로 지정을 하지 않고 파일을 처음 읽으면 offset은 0이 되고 (이 값이 –1이 될 수는 없다.) 파일의 끝은 eof가 된다. 1-3. System call: write 그리고 쓸 때 역시 append 모드가 아니면..

5. SQL 명령어

1. SQL 명령어 : CREATE TABLE 1) 명령어 형태부터 보자. CREATE TABLE EMPLOYEE ... 위 명령어는 EMPLOYEE 이름을 가진 테이블을 생성하는 명령어이다. 우선 아래의 예시를 보자. CREATE TABLE EMPLOYEE ( ...., Super_ssn CHAR(9), Dno INT NOTNULL DEFAULT 1, CONSTRAINT A PRIMARY KEY(Ssn), CONSTRAINT B FOREIGN KEY(Super_ssn) REFERENCES EMPLOYEE(Ssn) ON DELETE SET DEFAULT ON UPDATE CASCADE CONSTRAINT C FOREIGN KEY(Dno) REFERENCES DEPARTMENT(Dnumber) ON DEL..

4. Calling Convention(Caller-save, Callee-save, Hybrid)

1. The Stack 명령어를 통해 프로그램 작성할 때 필요한 메모리 구조에 대해 정리하였습니다. MIPS에서 32개의 레지스터를 가지고 있습니다. 한 프로그램 내에서 사용하는 모든 데이터를 레지스터에 로드하기 때문에 레지스터의 개수는 늘 부족합니다. 따라서 load store 명령을 통해 연산이 필요한 순간에 메모리와 레지스터가 소통하며 연산하게 됩니다. 이때 메모리의 어떤 저장 공간에 레지스터 값을 할당해야할까? 라는 정리가 필요합니다. 레지스터에 값을 메모리로 쫒아내는 과정을 “spil” 이라고합니다. 반대로 메모리에서 레지스터로 값을 읽어 들이는 과정을 “restore”라고 합니다. 이 두 과정을 수행하기 위한 메모리 공간을 stack 구조로 관리되게 됩니다. 일반적으로 OS가 프로세스에 데이터..

3. MIPS 문법 정리

1. MIPS 레지스터 Name Register Number Usage Calling Convention $zero 0 zero 레지스터에는 상수 0이 들어감. &at 1 at 레지스터는 어셈블러가 사용하는 임시공간이다. $v0 - $v1 2 - 3 함수의 리턴 값으로 사용된다. Caller Svae $a0 - $a3 4 - 7 매개변수를 저장하는 레지스터이다 $t0 - $t7 8 - 15 임시변수로 사용되는 레지스터로 값이 변할 수 있다. $s0 - $s7 16 - 23 상수 값을 저장하는 레지스터로 불변상태이다. Callee Save $t8 - $t9 24 - 25 임시변수로 사용되는 레지스터로 값이 변할 수 있다. Caller Save $k0 26 OS Kernel reserved $k1 27 OS..

2. ISA란?

도입 (내 생각 정리) ISA라는 용어를 처음 접하게 되면 아마 가장 많이 보게되는 정의는 “ISA란 마이크로프로세서가 인색해서 기능을 이해하고 실행할 수 있는 기계어 명령어를 말한다.” 일 것이다. 난 이 문장으로 처음 ISA를 접했을 때 전혀 이해할 수 없었다. 내가 공부한 방식으로 ISA를 정의해보면 ISA의 영어 뜻을 해석해보면 “명령어의 집합인 아키텍쳐”라고 해석이 된다. 아키텍쳐의 영어 뜻은 “건축학”을 의미한다고 한다. 컴퓨터 아키텍쳐(컴퓨터 구조)에서의 아키텍쳐는 컴퓨터 시스템의 하드웨어 구조를 말한다. 이를테면 1.에서 설명한 CPU, 메모리, 디스크와의 관계 또는 기계적 구조 또는 이를 설계한는 방법들을 두루두루 의미한다고 생각한다. 아키텍쳐란 어떠한 “구조” “형식”을 의미한다. 아래..

4. 관계 데이터 모델 , 관계 데이터 베이스 제약 조건

이 글은 Database Management System 3ed / R. Ramakrisnan and J. Gehrke 책을 읽고 직접 정리한 글입니다. 더보기 목차 1-1. 관계 모덜의 뜻 정리 1-2. relation의 예시 1-3. 예시를 통한 domain, attribute, tuple, relation 용어 정의 1-4. relation의 특성 1-5. tuple 내에서 값들과 NULL 값 2-1. 관계 모델 제약 조건 2-2. 도메인 제약조건 2-3. 키 제약 조건과 널에 대한 제약 조건 2-4. 관계 데이터베이스 스키마 2-5. 엔티티 무결성 제약조건 2-6. 참조 무결성 제약조건 3-1. 렐레이션의 3가지 갱신 연산(삭제, 삽입, 수정) 1-1. 관계 모델의 뜻 정리 관계 모델이란 DB의 ..