Thread Q. 스레드란? A. a thread is basic unit of CPU utilization 멀티 쓰레드는 프로세스 내부의 CPU 수행 단위인 Thread가 여러개 있는 것 같은일을 하는 프로세스를 여러개 실행하고 싶은 경우 → 전부 실행시 각각 메인 메모리에 올리고 가상 메모리 공간을 가져야 하므로 메모리 낭비가 일어난다. 웹을 띄우기 위해 이미지를 가져오고, 코드를 처리하는 데 이를 각각의 프로세스로 띄운다는 등, 동일 작업에 대해 별개의 프로세스를 갖는 것 크롬은 탭 별로 각각의 프로세스이며, 하나의 창에서도 주소창, 플러그인, 그외 부분에서도 여러 프로세스가 존재한다. 단, 페이지를 로드하기 위한 작업은 쓰레드 별로 이뤄진다. (웹페이지를 읽어오기, 이미지 보여주기, html 코드..
Q. 프로세스란? A. Process is a program in execution, 운영체제의 자원을 할당받는 작업의 단위 프로그램이 프로세스가 되기 위해서는 메모리의 적당한 위치로 프로그램을 가져오고, 그와 동시에 커널의 data영역에 해당 프로세스의 제어 블록 (PCB)를 생성한다. 프로세스가 종료될 때 PCB도 같이 폐기된다. 프로세스 = 프로그램 + PCB 프로그램 = 프로세스 - PCB 프로세스의 문맥(context) 프로세스의 실행은 program counter(PC)가 프로세스의 code를 가리키면서 instruction(명령어)을 하나씩 읽고, cpu에 가져와서 레지스터에 값을 넣고, 산술논리연산 장치에서 연산을 하고, 결과를 레지스터나 프로세스의 메모리에 저장을 한다. 이러한 실행의 특..
날짜/시간 함수 원하는 날짜를 가져오거나 형식대로 사용할 수 있다. 날짜 및 시간을 가져오는 함수 now() sysdate() current_timestamp() 날짜만 : curdate() 시간만 : curtime() 날짜 연산 함수 date_add("interval {수} {year, month, day, hour, minute, second}") date_sub(위와 동일) 쿼리문 -- 현재 날짜와 시간 select now(); select sysdate(); select current_timestamp(); -- 현재 날짜 select curdate(); select current_date(); -- 현재 시간 select curtime(); select current_time(); -- 날짜에서..
네트워크 연결 구분 LAN : Loca Area Network MAN : Metro Area Network WAN : Wide Area Network LAN Local Area Network로 홈 네트워크용과 사무실용 네트워크처럼 소규모의 네트워크를 말한다. 먼거리를 통신할 필요가 없어서 스위치와 같은 간단한 장비로 연결된 네트워크를 LAN이라 부른다. 현재 대부분 이더넷 기반의 전송 기술을 사용한다. WAN Wide Area Network로 멀리 떨어진 LAN간 연결을 해주거나, 인터넷에 접속하기 위한 네트워크를 말한다. 대부분 통신사업자 (ISP)로 부터 회선을 임대해서 사용한다. 네트워크 회선 인터넷 회선 인터넷 연결을 위해 통신 사업자와 연결하는 회선이다. 아파트등 회선을 공유해서 사용하는 경우가..
관계 데이터 모델 Relational Data Model 정의 관계 데이터 모델은 릴레이션으로 표현하고, 릴레이션에 대한 제약조건과 관계 연산을 위한 관계 대수를 정의한다. 테이블 형태의 릴레이션 구조에 데이터를 저장하는 방식이다. 1. 릴레이션 릴레이션이란? 행과 열로 이뤄진 테이블 구조이다. 릴레이션은 스키마와 인스턴스로 구성된다. 스키마 관계 데이터베이스의 릴레이션이 어떻게 구성되는지 어떤 정보를 담고 있는지에 대한 기본적인 구조를 정의한다. 테이블의 첫 행인 헤더에 나타나고, 각 데이터의 특징을 나타내는 속성, 자료 타입 등의 정보를 갖는다. 스키마는 속성(attribute)로 구성된다. 속성은 릴레이션 스키마의 column이다. 속성의 개수 : 차수 (degree) 속성이 가질 수 있는 값의 범..
Synchronous I/O & Asynchronous I/O 싱크 : 동기 ←→ 비동기 Synchronous I/O I/O요청 후 입출력 작업이 완료된 후 제어가 사용자 프로그램으로 넘어가는 것으로, 일단 프로세스는 대기상태가 된다 구현 방법 1 I/O가 끝날 때까지 프로세스는 대기상태가 되고, CPU도 해당 프로세스를 가지고 있는다. 매시점 하나의 I/O만 일어날 수 있다 → 프로세스 논다 & CPU 논다 구현방법 2 I/O가 완료될 때까지 해당 프로그램에게서 CPU를 빼앗고, I/O처리를 기다리는 다른 프로그램에게 CPU를 준다 그동안 입출력을 요청한 프로세스는 대기상태이다. (입출력을 요청한 프로세스는 놀고있다, 입출력 완료 대기중) CPU는 다른 I/O 처리 목록이 있으면 놀지않고 처리한다. →..
컴퓨터 시스템 구조 CPU 매 클럭 사이클 마다 메모리에서 instruction(기계어 명령)를 읽어서 처리하게 된다 CPU는 한번의 Instruction을 실행할 때마다 실행하고 난 후 interrupt line을 확인하고 있으면 처리 후 다음 Instruction을 실행한다 interrupt가 있으면 일단 처리중인 일을 멈추고 OS로 제어권이 넘어간다. OS는 해당 Interrupt를 보고 적절한 조치를 취하게 된다 메모리 cpu의 작업 공간 Device Controller I/O 장치들을 전담하는 작은 cpu 같은 것으로 I/O device에 붙어있다 디스크의 헤더가 욺직이는 등 I/O디바이스를 전담하는 역활을 한다 cpu와 I/O device의 처리성능에서 약 100만배 정도의 매우 큰 차이를 보..
문자열 함수 문자열 함수를 사용하면 데이터를 가져올 때 문자열과 관련된 작업을 할 수 있다. 조작 관련 문자열 함수 CONCAT(문자열1, 문자열2, 문자열3 ...) : 문자열을 합친다. INSERT(문자열, 시작위치, 길이, 새로운_문자열) : 문자열의 시작위치부터 길이 만큼의 문자열을 제거하고, 해당 위치에 새로운 문자열을 삽입한다. REPLACE(기존_문자열, 바뀔_문자열, 바꿀_문자열) : 기존의 문자열에서 바뀔 문자열을 찾아 제거하고, 해당 위치에 바꿀 문자열을 삽입한다. INSTR(문자열1, 문자열2) : 문자열1에서 문자열2를 찾아 위치를 반환한다. 위치는 앞에서부터 시작하며, 못찾으면 0을 반환한다. 쿼리문 select concat('aa', 'bb', 'cc'); -- aabbcc se..
숫자함수 ABS(n) : 절대값 CEIL(n) : 소수점 이하 올림 FLOOR(n) : 소수점 이하 내림 ROUND(n) : 소수점 이하 반올림, ROUND(n, 자릿수) : 자릿수를 기준으로 반올림 TRUNCATE(n, 자릿수) : 자릿수를 기준으로 버림 POW(x, y) or POWER(x, y) : x^y, x의 y승 MOD(분자, 분모) : 분자를 분모로 나눈 나머지 GREATEST(n1, n2, n3, ...) : 주어진 수 중에서 가장 큰값을 반환 LEAST(n1, n2, n3, ...) : 주어진 수 중에서 가장 작은 값을 반환 숫자함수를 사용하면 숫자값이나 숫자 컬럼에 대해 필요한 작업을 할 수 있다. 쿼리문 -- 절대값 select abs(100), abs(-100); -- 100, 10..
정렬 Order by Column명 asc : 오름차순 정렬, asc는 생략가능 Order by Column명 desc : 내림차순 정렬 정렬 기준은 숫자, 문자열, 날짜 등 모든 Column이 가능하다. 구조 select from where Order by 쿼리문 -- 사원의 번호와 급여를 가져온다. 급여를 기준으로 오름차순으로 정렬한다. select emp_no, salary from salaries Order by salary asc; -- 사원의 번호와 급여를 가져온다. 급여를 기준으로 내림차순으로 정렬한다. select emp_no, salary from salaries Order by salary desc; -- 사원의 번호와 이름을 가져온다. 이름을 기준으로 오름차순으로 정렬한다. selec..
like 문자열과 비교 시 조건식을 만들 때 사용한다. 기존 문자열 값 비교는 "="를 이용하면 지정된 문자열이 있는 로우를 가져올 수 있다. like는 이를 좀더 확장해서 조건을 만들 수 있다. like는 와일드 카드 개념을 사용하는데 모든 글자를 의미하는 특수 기호이다. "_" : 글자 하나를 의미한다. "%" : 글자수 상관없이 모든 글자를 의미한다. 쿼리문 select emp_no, first_name from employees where first_name = 'Tommaso'; -- 이름의 첫글자가 A로 시작하는 사원의 사원번호, 이름을 가져온다. select emp_no, first_name from employees where first_name like 'A%'; -- 이름의 마지막 글자..
논리 연산자 두 개 이상의 조건문을 사용할 때 사용하는 연산자이다. 종류 : and, or, not 쿼리문 -- 두 개 이상의 조건문을 작성할 때 사용하는 연산자. -- and, or, not -- d001 부서의 매니저 중에 1990년 이후부터 매니저인 사원의 사원번호, 부서번호, 매니저 시작날짜를 가져온다. select emp_no, dept_no, from_date from dept_manager where dept_no = 'd001' and from_date >= '1990-01-01'; -- 1990년 이후에 입사한 남자사원의 사원번호, 성별, 입사일을 가져온다. select emp_no, gender, hire_date from employees where hire_date >= '1990-..
- Total
- Today
- Yesterday