분류 전체보기(472)
-
OpenGL 콜백함수
마우스 콜백 마우스가 움직이거나 눌러질 때 발생하는 함수를 의미한다. 아래와 같은 네가지 함수가 존재한다. glutMouseFunc(void (*func)(int button, int state, int x, int y)); glutMotionFunc(void (*func)(int x, int y)); glutPassiveMotionFunc(void (*func)(int x, int y)); glutEntryFunc(void(*func)(int state)); glutMouseFunc(void (*func)(int button, int state, int x, int y)); 마우스 버튼을 눌렀을때 와 땔때 모두 사용할 수 있다. button에는 GLUT_LEFT_BUTTON, GLUT_RIGHT_BUT..
2020.09.21 -
교착 상태 (추후 추가 필요)
교착 상태 컴퓨터에는 한정적인 자원이 있고 프로세스가 이를 서로 경쟁할 수 있다. 한프로세스가 자원을 요청했을 때 사용하지 못하는 상황이 발생할 수 있다. 이처럼 계속해서 대기중이며 다시는 실행될 수 없는 프로세스의 상태를 교착상태라고 한다. 시스템은 경쟁하는 프로세들 사이에 분배되어야 할 유한한 수의 자원들로 구성된다. 자원 타입들은 CPU 주기, 파일, 입출력 장치 등이 있다. 이러한 자원들은 프로세스는 아래와 같은 순서로 진행한다. 요청 -> 사용 -> 방출 요청: 프로세스는 자원을 요청한다. 사용: 프로세스는 자원에 대해 작업을 수행할 수 있다. 방출: 프로세스가 자원을 방출한다. 이러한 예로는 장치의 request()와 release(), 파일 open(), close()와 메모리 allocat..
2020.09.13 -
프로세스 동기화
동기화라는 것은 같은 시간에 메모리를 read와 write가 동시에 발생하면 데이터가 일치하지 않게 될것이다. 동시에 여러 개의 프로세스가 동일한 자료를 접근해 조작하고, 그 실행 결과가 접근이 발생한 특정 순서에 의존하는 상황을 경쟁상황이라고 한다. 이렇듯 자원에 다수의 프로세스가 접근해서 사용한 후에도 데이터가 올바르게 유지하는 것을 프로세스 동기화라고한다. 임계구역 문제 각 프로세스는 일반적으로 아래와 같은 구조를 이룬다. 각 프로세스는 임계구역이라고 부르는 코드부분을 갖고 있고 이 안에서 공유 변수를 바꾸거나 테이블을 갱신하거나 파일을 쓰거나 하는 등의 작업을 수행한다. 여기서 중요한 점은 한 프로세스가 임계구역을 사용하고 있다면 다른 프로세스는 접근하지 못한다. 각 프로세스는 임계구역에 들어가기..
2020.09.11 -
Database System Concepts and Architecture
Data Model 데이터 베이스 연산, 제약 등의 데이터 베이스의 구조로 묘사하는 개념. Constructs는 일반적으로 데이터 베이스로 정의된다. Construct는 element(데이터 타입, 그룹, entity, record, table)과 그룹의 관계들을 포함한다. 제약은 데이터가 올바른지 확인하고 항상 강제적으로 따라야한다. 연산은 데이터 모델의 construct를 이용해서 추출 및 업데이트를 진행할 수 있다. 이러한 연산에는 기본 모델 operation과 user-defined operations이 있다. Database Schema - 자주 변함 x 데이터베이스의 정의. 구조, 제약, 데이터 타입 등이 속함. Database State - 항상 바뀜 특정한 한순간에 데이터베이스에 저장되어있..
2020.09.10 -
CPU 스케줄링
다중 프로그래밍 다중프로그래밍의 목적은 CPU 이용률을 최대화하기 위해 항상 실행 중인 프로세스를 가지게 하는 데 있다. 한 프로세스가 입출력하고 있을 때 다른 포르세스가 대기하고 있다면 CPU입장에서는 엄청난 낭비가 발생하는 것이다. 그래서 어떤 프로세스가 대기하고 있을 때 CPU에 다른 프로세스를 할당해주어서 CPU가 항상 실행중인 프로세스를 갖게 해주는 것이다. CPU 스케줄러 CPU가 유휴 상태가 될 때마다, 운영체제는 준비 완료 큐에 있는 프로세스들 중에서 하나를 선택해 running 상태로 만드는 것이다. 즉 여기서 CPU가 선택되는 방법에 대해서 배울 것입니다. 스케줄링 CPU 스케줄링 결정 과정 1. 한 프로세스가 running 상태에서 waiting 상태가 될 때 2. 프로세스가 runn..
2020.09.09 -
스레드
스레드는 CPU 이용의 기본 단위이다. 스레드는 스레드 ID, 프로그램 카운터, 레지스터 집합, 그리고 스택으로 구성된다. 스레드는 같은 프로세스에 속한 다른 스레드와 자원을 공유한다. 다중 스레드의 경우 코드, 데이터, 파일들을 공유한다. 프로세스가 다중 스레드를 가지고 있다면 프로세스는 동시에 하나 이상의 작업을 수행할 수 있다. 웹서버는 일반적으로 다수의 클라이언트로 부터 접속을 받는다. 하지만 싱글스레드이면 클라이언트를 순서대로 처리하게 되면 속도에 문제가 발생할 것이다. 그래서 서버는 클라이언트에서 요청이 올때마다 새로운 스레드를 생성해 작업을 처리해준다. 스레드 장점 1. 응답성 하나의 응용프로그램이 길게 실행되고 있는걸 하나의 스레드로 실행시키고 다른 스레드를 활용해서 해당 응용프로그램을 계..
2020.09.07