스레드의 이해스레드란 무엇인가?멀티 프로세스 기반 프로그램둘 이상의 서로 다른 프로그램 실행을 위해서 둘 이상의 프로세스를 생성하는 것은 지극히 당연한 일이다.음악을 듣기 위해 MP3 플레이어를 실행시키고, 문서 작업을 위해 WORD 프로그램을 실행시키면 기본적으로 두 개의 프로세스는 생성된다. 그러나 하나의 프로그램이 두 가지 이상의 일(흐름)을 동시에 처리하기 위해서도 둘 이상의 프로세스가 필요하다.(여기서의 흐름은 코드 실행을 말한다)멀티 프로세스 운영체제 기반 프로그램의 문제점과 새로운 제안두 가지 이상의 일을 동시에 처리하기 위해서, 혹은 둘 이상의 실행 흐름이 필요해서 추가적으로 프로세스를 생성하는 작업은 상당히 부담스럽다. 많은 수의 프로세스 생성은 빈번한 컨텍스트 스위칭으로 이어져 성능에 ..
컴퓨터 구조에 대한 세 번째 이야기CPU가 함수 호출을 어떻게 처리하는지 이해하는 게 주 목표절차적 함수 호출(Procedure Call) 지원 CPU 모델스택 프레임(Stack Frame) 이란?임의의 함수내에서 선언된 메모리 공간함수 호출 과정에서 할당되는 메모리 블록(지역 변수의 선언으로 인해 할당되는 메모리 블록)을 가리켜 스택 프레임이라 한다. 아래 그림을 보면 main 함수 내에 변수 a와 b가 선언되어 있다. 따라서 변수 a와 b가 할당되어 main 함수의 스택 프레임을 구성한다.함수 호출이 완료되면(return 하고 나면) 기존에 선언된 지역변수에 접근이 불가능하다. 주소를 알고 있다 하더라도 말이다. 이는 할당되었던 메모리가 반환되었음을 의미하는 것이다. 따라서 다음과 같이 말할 수 있다..
프로세스의 스케줄링일반 OS와 리얼타임 (Real Time) OS의 차이점이 내용을 스케줄링에서 언급하는 이유?일반 OS와 리얼타일 OS를 결정짓는 요소가 스케줄러이기 때문이다.스케줄러가 어떻게 스케줄링 하냐에 따라서 일반 OS가 되기도 하고 리얼타일 OS가 되기도 한다.리얼타임 OS리얼타임 즉 실시간이라는거다. 실시간이라는 거는 바로바로 응답한다는 소리다. 응답성이 좋다바로바로 응답을 한다는 것은 얼마나 많은 프로그램이 동작을 하고 있더라도 바로바로 실행을 시켜야 한다는 의미다.일반 OS와 리얼타임 OS가 프로세스를 실행 시켰는데 둘 중에서 리얼타임 OS가 시작이 빠르다.하지만 중요한거는 시작이 빠르다고 해서 계속 빠른 거는 아니다.일반 OS가 시작이 느려도 먼저 도착을 할 수 있는거고 리얼타임 OS가..
Join이란?한 테이블의 행을 다른 테이블의 행에 연결하여 두 개 이상의 테이블을 결합하는 연산이다.아래 SQL 문은 두 개의 테이블을 아무 조건 없이 연결한 예다.SELECT * FROM 테이블1, 테이블2두 테이블을 아무런 조건 없이 SELECT 시키면 관계대수의 카티션 프로덕트 연산이 된다.기본 구조일반 SELECT 테이블.컬럼, 테이블.컬럼 FROM 테이블1,테이블2 WHERE 조건 Join 의 종류Inner JoinNatural JoinOuter JoinLeft JoinRight JoinCross JoinINNER JOIN조인하는 테이블의 ON 절의 조건이 일치하는 결과만 출력합니다. 표준 SQL 과는 달리 MySQL에서는 JOIN, INNER JOIN, CROSS JOIN 이 모두 같은 의미로..