CS
자식 프로세스를 생성하고자 할 때 fork 함수를 사용하면 된다. 복사에 의한 생성 원본 프로세스(부모 프로세스)에서 fork()를 호출하면 복사본 프로세스(자식 프로세스)가 생긴다. fork함수에 의해 생성된 자식 프로세스는 부모 프로세스의 메모리를 그대로 복사해 가지게 된다. fork 함수 호출 이후 코드부터 각자의 메모리를 사용하여 실행된다. fork 함수가 실행 된 직후 자식 프로세스와 부모 프로세스와 동일한 주소 공간의 복사 부모 PID는 43889이고 자식 PID는 43895이다. 부모와 자식의 분리 #include #include #include int main() { pid_t pid; int x; x = 0; pid = fork(); if(pid > 0) { // 부모 코드 x = 1; ..
프로그램이란 (실행되기 전)명령어, 코드 및 정적인 데이터의 묶음 프로세스란 실행 중인 프로그램 하드 디스크에 있는 프로그램이 프로세스가 되면서 메모리에 적재 된다. 운영체제로부터 시스템 자원을 할당 받는 작업의 단위 스레드 단위 작업을 지원하기 위한 자원 할당의 단위 → 프로세스가 동작 중이라는 것은 한 프로세스에 있는 스레드가 실행 중이라는 것 프로세스 생성 시 PCB블록이 생성되어 프로세스가 관리된다. 프로세스 메모리 영역 Stack - 매개변수, 지역 변수 등 임시적인 자료 Heap - 동적으로 할당되는 메모리 Data - 전역 변수 code - 프로그램의 코드 PCB 각 프로세스는 운영체제에서 PCB(Process Control Block)으로 표현됨 프로세스를 제어하기 위한 정보를 모아둠. 포..
이상 현상이란? 테이블을 설계할 때 잘못 설계하여 데이터를 삭제,수정,삽입할 때 논리적으로 오류가 생기는 것 대부분 이상현상이 발생하는 데이터의 중복성때문인데 이를 제거하는 과정이 정규화 1. 삽입 이상 자료를 삽입할 때 의도하지 않은 자료까지 삽입해야만 자료를 테이블에 추가가 가능한 현상입니다. 강의를 아직 수강하지 않은 새로운 학생을 삽입할 경우 강의코드 속성에는 null값이 들어가야 하는 문제가 생깁니다. 2. 갱신 이상 중복된 데이터 중 일부만 수정되어 데이터 모순이 일어나는 이상입니다. 강의코드가 "AAC3"인 서준호의 전화번호를 수정할 경우, 3번째 튜플의 데이터만 수정될 것입니다. 그러면 3,4번째 튜플은 같은 사용자의 데이터 인데도 불구하고 전화번호가 다르게 됩니다. 3. 삭제 이상 어떤 ..
트랜잭션이란? DBMS에서 하나의 최소한의 작업 단위이다. 여러 사람이 데이터베이스를 동시에 사용하더라도 데이터에 문제가 없어야 한다. 원자성, 일관성, 격리성, 지속성 = ACID가 지켜져야 함. ex) 입출금 시스템 ACID 특성 원자성(Atomicity) : 트랜잭션이 수행하는 연산들을 모두 정상적으로 처리하거나 모두 처리하지 않아야 한다는 all-or-nothing 방식 일관성(Consistency) : 데이터베이스의 데이터는 일관된 상태를 유지해야 한다. ( = 미리 정의된 규칙에만 수정이 가능해 숫자 컬럼에 문자열값 X) //트랜잭션의 결과가 제약 조건을 해치면안된다. 격리성(Isolation) : 하나의 트랜잭션이 완료될 때까지 다른 트랜잭션이 간섭하지 못하도록 하여 각각의 트랜잭션이 독립적..
DB란 데이터베이스란 여러 사람이 공유해 사용할 목적으로 통합, 관리하는 데이터의 집합이다. DBMS란? DataBase Management System의 약자로 데이터베이스를 관리하는 시스템이다. 사용자와 DB사이에서 사용자의 요구에 따라 데이터를 생성해주고 DB를 관리해주는 소프트웨어이다. 테이블 간에 관계가 없다. 데이터에 대한 많은 보안을 제공하지 않고 정규화를 수행할 수 없어 데이터는 높은 중복성을 가질 수 있다. ex) Sybase, dase , Microsoft Access RDB(Relational DataBase) RDB는 관계형 데이터 모델에 기초를 둔 데이터 베이스 테이블 간에 관계가있음. RDBMS RDB를 생성하고 수정하고 관리할 수 있는 소프트웨어이다. 테이블이 서로 연관되어 있..
서버의 무상태 특징때문에 사용자의 정보를 저장할 수 있는 방법을 만듬 : 쿠키,세션 쿠키 HTTP의 일종으로 사용자가 어떠한 웹 사이트를 방문할 경우,그 사이트가 사용하고 있는 서버에서 사용자의 컴퓨터에 저장하는 작은 기록 정보 파일이다. HTTP에서 클라이언트의 상태 정보를 클라이언트의 PC에 저장하였다가필요시 정보를 참조하거나 재사용할 수 있다. 쿠키 특징 이름, 값, 만료일(저장 기간 설정), 경로 정보로 구성되어 있다. 클라이언트에 총 300개의 쿠키를 저장할 수 있다. 하나의 도메인 당 20개의 쿠키를 가질 수 있다 하나의 쿠키는 4KB(=4096byte)까지 저장 가능하다. 쿠키의 동작 순서 클라이언트가 페이지를 요청한다. (사용자가 웹사이트 접근) 웹 서버는 쿠키를 생성한다. 생성한 쿠키에 ..
해시 테이블 key와 value로 데이터를 저장하는 자료구조 하나의 해시 함수를 이용해 저장한다 ex) h(x) = xmod13 → h(7) = 7, h(13) = 0 해당 원소의 해시값을 해시 함수를 이용해 계산한다. (= 해싱) 이 해시값을 주소로 하는 위치에 원소를 저장한다. 저장 후에 검색을 할 때도 원소의 해시값을 계산해 바로 해당 위치로 이동한다.임의의 원소를 해시 테이블에 저장하려면 → 이렇게 해시 테이블은 원소를 저장할 위치를 상수 시간에 계산할 수 있다. 실제 값이 저장되는 장소를 버킷 또는 슬롯이라한다. 해시 함수란? 임이의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수 좋은 해시함수 계산이 간단해야 한다. 입력 원소가 해시 테이블 전체에 고루 저장되어야 한다. → 해시충돌 발생..
우선순위 큐(Priority Queue) 일반적인 큐는 먼저 들어간 데이터가 먼저 나오는 구조이다. 이런 큐의 특성과 달리 우선순위 큐(Priority Queue)는 들어간 순서에 상관없이 일정한 규칙에 따라 우선순위를 선정하고 우선순위가 가장 높은 데이터가 가장 먼저 나오게 된다. heap으로 구현되어 있다. 우선순위 큐의 이용 사례 시뮬레이션 시스템 네트워크 트래픽 제어 운영 체제에서의 작업 스케쥴링 수치 해석적인 계산 우선순위를 구현할 수 있는 방법 : Array, LinkedList, heap heap으로 구현된 이유 : 힙의 경우 삭제나 삽입 과정에서 모두 부모와 자식 간의 비교만 계속 이루어진다. 이진 트리의 높이가 하나 증가할 때마다 저장 가능한 자료의 갯수는 2배 증가하며, 비교 연산 횟수..
HTTP(HyperText Transfer Protocol)이란? - 웹상에서 클라이언트와 서버 간 통신을 위한 프로토콜 HTTP 클라이언트 서버 구조 Request & Response 구조 클라이언트는 서버에 요청을 보내고, 응답을 대기 서버가 요청에 대한 결과를 만들어서 응답 HTTP 특징 Stateless(무상태) - 서버가 클라이언트의 상태를 보존 X 장점 : 서버 확장성이 높음 (응답 서버를 바꿀 수 있고 무한한 서버 증설 가능) 단점: 클라이언트가 추가 데이터 전송 상태 유지는 쿠키나 세션 사용 connectionless(비연결성) - 응답 뒤 클라이언트 서버 간 연결 해제 장점 : 서버 자원을 매우 효율적으로 사용할 수 있고 응답시간빠름 단점 : 새로 연결해야하기 때문에 3way handsh..