Computer Science(18)
-
[DB]SQLD_2
SQL 종류 - SQL은 데이터 정의, 데이터 조작, 데이터 제어 등의 기능 지원 Standard Explanation DDL(Data Definition Language) - 관계형 데이터베이스 구조를 정의 - CREATE, ALTER, DROP, RENAME문 DML(Data Manipulation Language) - 테이블에서 데이터를 입력, 수정, 삭제, 조회 - INSERT, UPDATE, DELETE, SELECT문 DCL(Data Control Language) - 데이터베이스 사용자에게 권한을 부여하거나 회수 - GRANT, REVOKE, TRUNCATE문 TCL(Transaction Control Language) - 트랜잭션을 제어하는 명령어 - COMMIT, ROLLBACK, SAV..
2023.05.25 -
[DB] SQLD_1
# 카테시안 곱 From 절에 2개 이상의 Table이 있을 때 두 테이블 사이의 유효 Join 조건을 적지 않았을 시에 해당 테이블에 대한 모든 데이터를 결합하여 테이블에 존재하는 행 갯수를 곱한 만큼의 결과값이 반환되는 것 # 파티션 기법 데이터베이스에서 파티션을 사용하여 테이블을 분할 하는 것. 파티션을 사용하면 논리적으로는 하나의 테이블이지만 여러 개의 데이터 파일에 분산되어 저장한다. PARTITION EXPLANATION Range Partition 데이터 값의 범위를 기준으로 파티션 수행 List Partition 특정한 값을 지정하여 파티션을 수행 Hash Partition 해시 함수를 적용하여 파티션을 수행 Composite Partition 범위와 해시를 복합적으로 사용하여 파티션을 수..
2023.05.21 -
[OS] vi 편집기
Boaz 활동을 하다보면 linux 환경에서 파일을 편집하여 구동하는 경우가 잦다. 여러 활동을 하면서 Linux에 대한 이해가 부족하다고 생각해서 일단 가볍게 리눅스마스터 2급 취득을 목표로 틈틈이 공부중인데, 오늘 vi 편집기에 대해 알아보자. 리눅스에서 지원하는 편집기로는 pico, emacs,vi, gedit, xedit 등이 있다. vi 편집기는 유닉스 환경에서 가장 많이 쓰이는 문서 편집기이다. 다른 편집기들과 다르게 모드형 편집기이며, 명령모드 / 입력모드 / 편집모드로 구성되어 있다. 한 줄씩 편집하는 줄 단위 편집기가 아닌 한 화면을 편집하는 비주얼 에디터이며, 기종별 다양한 vi 클론들이 존재한다. vim 편집기도 있는데, vi 편집기와 호환되며 독자적으로 다양한 기능을 추가하여 만든 ..
2023.05.09 -
[OS] Semaphore에 대해
앞선 포스트에서 확인할 수 있듯이, Process Synchronization 문제에서 Critical Section 처리 방식은 상당히 중요하다. OS가 동기화 문제를 일으키지만, 앞선 포스트에서 봤듯 소프트웨어적인 알고리즘으로는 비효율적인 문제와 과잉 양보 문제가 발생하므로, 하드웨어적 접근이 필요하다. 하드웨어 적으로 Test & Modify를 원자적으로 수행할 수 있도록 지원하게 되면, Critical Section 문제는 간단히 해결된다. Synchronization variable boolean lock = false; Process P_i do { while(Test_and_Set(lock)); critical section lock = false; remainder section } 이 p..
2023.04.27 -
[OS] Process Synchronization
오늘로 운영체제 독학이 마무리되었다. 마무리된 김에, 이해하기 어려웠던 개념인 Process Synchronization에 대해 알아보려 한다. 프로세스 간 메시지를 전송하거나, 공유 메모리를 통해 특정 데이터를 공유하게 되는 경우 문제가 발생할 수 있다. CPU를 할당받은 프로세스가 공유 메모리에 대한 작업을 수행하는 상황에, 중간에 다른 프로세스에서 해당 메모리 내 같은 데이터에 대한 작업이 수행되는 경우를 말한다. 이를 Race Condition이라고 한다. Race Condition은 작업 도중 OS가 개입하는 경우 때문에 발생한다. 1. CPU의 kernel 수행 중 Interrupt 발생 시 2. 프로세스가 System Call을 요청하여 kernel 모드로 수행중인데 Context Switc..
2023.04.27 -
[OS] Synchronous I/O와 Asynchronous I/O
- I/O, 입출력 컴퓨터 시스템이 컴퓨터 외부의 입출력 장치들과 데이터를 주고받는 것 동기식 입출력, Synchronous I/O 어떤 프로그램이 입출력 요청을 했을 때 디스크 입출력이 완료된 후에야 그 프로그램이 후속 작업을 수행할 수 있는 방식 프로그램이 디스크에서 어떤 정보를 읽어오라는 요청을 했을 때 디스크 입출력이 완료되기까지는 어느 정도의 시간이 소요된다. 이때 동기식 입출력은 입출력이 진행되는 동안 그 프로그램의 다음 명령을 수행하지 않고 기다린다. 이후 입출력이 완료되어 인터럽트를 통해 그 사실을 전달된 후에야 CPU의 제어권이 프로그램에게 넘어가서 다음 명령을 수행할 수 있게 된다. 동기식 입출력은 CPU는 입출력 연산이 끝날 때까지 인터럽트를 기다리며 자원을 낭비하게 되는 것이다. 이..
2023.04.12