제약조건


데이터의 무결성을 보장하기 위한 조건.




데이터 무결성


DB에 저장된 데이터의 일관성을 의미하며 데이터의 입력, 수정을 제한하여 안전성을 저해하는 요소를 예방하는 것을 의미

즉, 해당 데이터에 대해 무작위로 입력, 수정을 할 수 없도록 막는 것.




제약 조건


1. NOT NULL 

2. UNIQUE

3. PRIMARY KEY

4. FOREIGN KEY

5. CHECK




1. NOT NULL


NULL 값을 넣을 수 없음. Default를 정의하여 해당 데이터가 없을 경우에 Defalut값을 넣도록 할 수 있다.


사용예시 ) char_id varchar2(8) NOT NULL;




2. UNIQUE


중복된 값이 아닌 유일한 값만 넣을 수 있음. 해당 테이블 내에서 동일한 값이 들어가게 되면 에러가 난다.


사용예시 ) user_num number UNIQUE;




3. PRIMARY KEY


Null 값을 갖지 못하며, 중복된 값을 가질 수 없음. 즉 NOT NULL, UNIQUE를 동시에 정의 한 것 과 같다.


사용예시 ) user_num PRIMARY KEY;




4. FOREIGN KEY


외래키, 해당 컬럼은 반드시 다른 테이블의 기본키와 참조 관계를 갖고 외래키로 지정된 컬럼은 참조관계를 가진 테이블의 기본키에 있는 값만을 가질 수 있다. 이 경우에 자식 테이블이 참조하는 데이터는 부모 테이블에서 삭제가 불가능하다. 옵션을 통해서 부모테이블에 삭제되면 자식테이블도 삭제 가능


사용예시 ) constraints 외래키명 FOREIGN KEY references 참조테이블명(기본키 컬럼명)





5. CHECK 


입력 될 수 있는 데이터의 종류를 제한. 기본 연산자, 비교연산자, IN, NOT IN 등 사용이 가능하다.


사용예시 ) gender varchar2(8) CHECK ( gender IN ('Man', 'Woman' ) 









운영체제란?


컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스를 담당하는 프로그램. 사용자가 응용 프로그램을 편리하게 실행 할 수 있도록 도와준다.

하드웨어와 컴퓨터 사용자를 연결하는 매개체 역할.





운영체제의 역할


하드웨어와 컴퓨터 사용자를 연결하는 역할. 응용프로그램 간의 하드웨어 사용 제어, 운영체제는 컴퓨터 하드웨어와 응용 프로그램 간의 인터페이스

역할을 하면서 CPU, 메모리와 같은 컴퓨터 자원을 관리하고 사용자에게 편의를 제공한다.


1. 조정자로서의 역할 : 운영 요소를 적절하게 사용 할 수있도록 제어. 다만 프로그램이 작업 할 수 있는 환경만 제공 할 뿐 직접일은 못한다.

                                    예를들어 워드프로세서 역할을 직접 수행하는 것이 아닌, 워드프로세서가 제 기능을 하도록 도움만 준다.


2. 자원 할당자 또는 관리자로서의 역할 : 각 응용 프로그램에 필요한 자원을 할당해준다.

                                                     (프로세서 시간, 메모리 공간, 파일저장 공간, 입출력장치 등 )

                                                     그런데 각 응용프로그램에서 동일한 자원을 요구하는 충돌이 발생 할 수 있다. 이럴때 운영체제는 

                                                     시스템을 공정하고 효율적으로 운영하기위해 자원 할당을 어떻게 할지에 대한 관리자 역할도 한다.


3. 입출력 장치와 사용자 프로그램 제어 : 시스템의 부적절한 사용이나 오류 방지를 위해 사용자 프로그램의 실행을 제어






버퍼링


입출력장치의 느린 속도를 보완하기 위한 운영체제의 기능 중 하나로 프로세서와 입출력장치를 유휴시간이 없도록 프로세서의 연산과정과 함께

어떤 작업의 입출력을 동시에 수행하는 방식

데이터 구성 단위로는 레코드가 쓰인다. 버퍼링의 성능은 처리되는 레코드 수에 따라 달라진다.




스풀링


디스크를 매우 큰 버퍼처럼 사용하는 것. 입력장치에서 미리 읽어들여 출력장치가 받을 수 있을 때 까지 출력파일을 저장.

버퍼링과 비교하여 스풀링은 한 작업의 입출력을 수행하면서 다른 작업의 계산도 할 수 있다는 장점을 갖는다.




운영체제의 유형별 특징


1. 다중프로그래밍 시스템

2. 시분할 시스템

3. 분산처리 시스템

4. 다중처리 시스템

5. 단일 사용자 시스템




다중프로그래밍 시스템


프로세서가 항상 수행할 작압을 가지도록하여 프로세서 이용률을 증진 시키는 방식. 수행 될 작업을 메모리에 적재하여 프로세서가 유휴하지 않는 상태로 만드는 방식. 인터럽트를 수행하여 여러 개의 작업이 수행 준비를 갖추고 있을때 해당 작업을 결정하여 수행한다.


시분할 시스템


다중프로그래밍을 논리적으로 확장한 개념으로 프로세서를 통해 다중 작업을 교대로 수행하여 컴퓨터가 여러개 있는것 처럼 착각하게 만든다.

여러작업이 메모리에 저장되어 있는 경우 한 작업이 다른 작업의 데이터를 변경하는 등의 작업에 대한 보호가 필요하다. 또한 다수의 사용자가 접근하는 파일은 접근 권한을 두어 특정 권한을 가진 사용자만 접근 할 수 있도록 파일 시스템을 보호해야 한다.


분산처리 시스템


시스템마다 운영체제와 메모리를 가지고 독립적으로 운영되며 필요할 때 통신하는 시스템 둘 이상의 독립된 컴퓨터 시스템을 통신선으로 연결한다.





운영체제 기능


자원관리와 프로그램을 위한 인터페이스 역할 수행


1. 자원관리 기능 메모리, 프로세스, 장치, 파일 등의 시스템 구성요소를 관리하는 역할


- 메모리 관리 : 프로세서가 명령어를 수행하려면 명령어가 메인 메모리에 있어야 한다. 프로그램을 수행하려면 프로그램이 절대주소로 맵핑되어 메인 메모리에 저장되어야 한다. 운영체제는 메모리의 사용부분, 사용자 점검, 기억 공간에 어떤 프로세스를 저장할지 결정, 기억 공간 할당 및 회수 결정을 담당한다.


- 보조기억장치 관리 : 비어있는 공간관리, 저장 장소 할당, 디스크 스케줄링을 담당한다.


- 프로세스 관리 : 프로세스와 스레드 스케줄링, 사용자, 시스템프로세스 생성 및 제거, 프로세스 중지와 재수행, 프로세스 동기화를 위한 기법제공, 

                       프로세스 통신을 위한 기법 제공, 교착상태 방지 기법 제공을 담당


- 장치 관리 : 임시 저장시스템, 장치드라이버 인터페이스, 특정하드웨어 장치를 위한 드라이버를 담당


- 파일 관리 : 파일 생성과 제거, 디렉터리 생성과 제거, 보조기억장치에 있는 파일의 맵핑, 안전한 저장매체에 파일 저장 담당


 2. 운영체제의 기타 기능

 

 - 시스템 보호 : 운영체제에 있는 프로세스는 다른 사용자들의 프로그램으로 부터 파일, 기억장치, 프로세서, 기타 자원등에 대하여 적절한 권한을 부여한                       프로세스만 수행될수 있어야 한다.


 - 네트워킹 : 시스템에 있는 프로세서는 통신 네트워크를 통해 연결된다.


 - 명령 해석기와 시스템 관리 :사용자가 입력한 여러가지 명령은 제어 문장에 의해 운영체제에 전달이 되고, 이 전달을 명령해석기가 담당




운영체제 서비스


운영체제는 사용자에게 다음과 같은 서비스를 제공한다.


부트스트래핑 서비스

사용자서비스

시스템 서비스

시스템 호출 서비스


1. 부트스트래핑 서비스


부트스트래핑 : 운영체제가 적재 되는 과정, 부팅이라고도 한다. 부트스트랩 로더는 disk track 0, 나머지는 다른 부분에 적재 된다.


                                       







'프로그래밍 > 운영체제' 카테고리의 다른 글

[ 기술면접 정리 서버 / 운영체제 ]  (0) 2019.03.06
[1] 컴퓨터 시스템 소개  (0) 2019.02.07
쓰레드란?  (0) 2019.02.05

레지스터

: 프로세서에 위치한 고속메모리, 프로세서가 바로 사용할 수 있는 데이터를 담는다.




메인 메모리

: 고유 주소를 갖는 워드, 바이트로 구성된 대규모 배열 주소를 읽거나 기록함으로써 상호작용 한다.

 프로세서는 메인 메모리로부터 데이터를 읽거나 쓴다.




캐시 

:처리 속도가 빠른 프로세서와 느린 메인 메모리 사이에서 데이터나 정보를 저장하는 고속 버퍼이다. 메인 메모리에서 일정 블록의 데이터를 가져와

워드 단위로 프로세서에 전달하여 정보를 빠르게 제공하는 역할

메인 메모리 주소 영역을 한 번 읽어 들일수 있는 라인크기로 나눈 후 각 블록에 번호를 부여 한 후 이번호를 태그로 저장.



캐시적중 (Cache Hit) : 프로세서는 메인메모리 접근 전에 캐시를 먼저 조사한다. 만약 캐시가 데이터를 보관하고 있으면, 캐시는 데이터 라인에서 요청한 데이터를 읽어

프로세서에 보낸다.


캐시실패 (Cache Miss) : 원하는 주소의 블록에 캐시에 없을때 캐시제어기는 메인메모리에서 해당 블록을 읽어 캐시에 넣고 프로세서에 전송




시스템의 동작 과정


Data를 디지털 형태로 입력받아 메모리에 저장된 명령어 목록에 따라 처리 후 출력. 저장






인터럽트


컴퓨터에서 설정된 장치에서 프로세서로 보내는 하드웨어 신호. 인터럽트를 받은 프로그램은 실행을 멈추고 다른 프로그램이 실행 된다.


시스템이 예측하지 못하는 갑작스런 정전, 시스템으로 부터의 긴급 요청, 잘못된 명령어 수행, 입출력 작업완료 같은 긴급상황을 처리하기 위해서 필요


프로그램의 정상 실행을 일시 정지 시키는 과정과 재개하는 과정의 연속으로 실행, 사용자 프로그램에 별도로 인터럽트를 위한 조치가 필요한것은 아니다.











참조 : 운영체제 그림으로 배우는 원리와 구조 / 구현회 저 / 한빛 아카데미

'프로그래밍 > 운영체제' 카테고리의 다른 글

[ 기술면접 정리 서버 / 운영체제 ]  (0) 2019.03.06
[2] 운영체제 소개  (0) 2019.02.07
쓰레드란?  (0) 2019.02.05

https://www.youtube.com/watch?v=SUhwAufGvg4

'일반 > 포트폴리오' 카테고리의 다른 글

보유기술  (0) 2019.02.05

1. 윈도우 프로그래밍
- C , C++, STL, Python, C# 사용가능
- Python을 이용하여 2D게임, 공공 API를 이용한 화장실 위치찾기 경험
- STL을 이용하여 Paint Replay PG 경험
- WinForm, WPF 및 MFC 기반 UI 프로그래밍 가능 
- Network Programming ( IOCP Socket을 이용한 3D게임 서버 파트 경험 )


2. 개발 관리 툴 
- SVN ( Dual AA 프로젝트 에서 사용, 사내 사원 대리급 대상 세미나 )
- Redmine ( 이슈 관리 툴 )


3. 다양한 개발 라이브러리 
- OpenGL ( 개인 프로젝트 도입 ? 3D 아케이드 게임 )
- 제어 사내 라이브러리 ( Dual AA 프로젝트 에서 사용 )
- 아진엑스텍 모션보드 제어 라이브러리 경험


4. 프로그래밍 알고리즘 과 현장 대응 경험
- C, C++ 기본 개념 과 OOP 프로그래밍 
- 디자인 패턴
- 데이터 베이스 기본 개념 
- 중국 난창 현장 대응 

'일반 > 포트폴리오' 카테고리의 다른 글

게임 서버 포트폴리오 영상 링크  (0) 2019.02.05


TCP / IP?

 

인터넷 네트워크의 핵심 프로토콜( 프로토콜(Protocol)은 규약이다. 일종의 약속이라는 뜻이다. 커뮤니케이션 하는 컴퓨터들 간에 오류를 최소화함으로써 정보를 원활하게 교환하기 위해 만들어진 규칙의 집합) 으로서. 인터넷에서 전송되는 정보나 파일들이 일정한 크기의 패킷들로 나뉘어 네트워크상 수많은 노드들의 조합으로 생성되는 경로들을 거쳐 분산적으로 전송되고, 수신지에 도착한 패킷들이 원래의 정보나 파일로 재조립되도록 하는 게 바로 TCP/IP의 기능이다.

 

프로토콜인 TCP는 전송할 파일을 좀 더 작은 패킷들로 나누어 인터넷 네트워크를 통해 전송하는 일과 수신된 패킷을 원래의 메시지로 조립하는 일을 담당.

IP는 각 패킷의 주소 부분을 처리해 패킷들이 목적지에 정확하게 도달하도록 하는 기능을 수행한다.

 

예를들어 20명의 사람이 오이도를 가는데 차 1대로 못가기 때문에 여러대의 차를 빌려 나누어 탄다. 그 중 대장은 연락을 통해 목적지를 정하고 그 목적지로 전원이 잘 도착 할 수 있도록 유도 하는 것과 같다.

 

 

클라이언트-서버 통신 모델

 

서버 클라이언트가 요청하는 서비스를 처리

클라이언트 : 서비스를 서버에게 요청

 

한 컴퓨터에서 실행되는 두 프로그램에 클라이언트-서버 모델을 적용하면 데이터 주고받기가 가능

 

접속이 성공하려면 반드시 상대 프로그램이 실행되어야함 동시접속 모델을 사용하면 타이밍문제로 실패확률 높음 따라서 서버-클라이언트 모델을 이용하여 먼저 실행하는쪽을 서버 후를 클라이언트로 하여 해결가능

 

 

네트워크로 연결된 컴퓨터는 반드시 TCP/IP로 연결가능


+ Recent posts