스케줄링이란? 1. 스케줄링은 프로세스가 생성되어 실행될때 필요한 시스템의 여러자원을 해당 프로세스에게 할당하는 작업을 의미합니다. 2. 프로세스가 생성되어 완료될때까지 프로세스는 여러 종류의 스케줄링 과정을 거치게 됩니다. 3. 스케줄링의 종류에는 장기 스케줄링, 중기 스케줄링, 단기 스케줄링이 있습니다. 장기 스케줄링 어떤 프로세스가 시스템의 자원을 차지할 수 있도록 할 것인가를 결정하여 준비상태 큐로 보내는 작업을 의미합니다. 작업 스케줄링, 상위 스케줄링이라고도 하며, 작업 스케줄러에 의해 수행됩니다. 중기 스케줄링 어떤 프로세스들이 CPU를 할당 받을 것인지 결정하는 작업을 의미합니다. CPU를 할당받으려는 프로세스가 많을 경우 프로세스를 일시 보류시킨 후 활성화해서 일시적으로 부하를 조절합니다..
PCB란? PCB(프로세스 제어블록)는 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳으로 Task Control Block 또는 Job Control Block이라고도 합니다. 각 프로세스가 생성될 때마다 고유의 PCB가 생성되며 프로세스가 완료되면 PCB는 제거됩니다. PCB에 저장되어 있는 정보 저장정보 설명 프로세스의 현재 상태 준비, 대기, 실행 등의 프로세스 상태 포인터 부모 프로세스에 대한 포인터 : 부모 프로세스의 주소 기억 자식 프로세스에 대한 포인터 : 자식 프로세스의 주소 기억 프로세스가 위치한 메모리에 대한 포인터 : 현재 프로세스가 위치한 주소 기억 할당된 자원에 대한 포인터 : 프로세스에 할당된 각 자원에 대한 주소 기억 프로세스 고유 식별자 프로세스를 구분할 수 있는 ..
프로세스란? 프로세스는 일반적으로 CPU에 의해 처리되는 사용자 프로그램, 시스템 프로그램 즉 실행중인 프로그램을 의미하며, 작업(Job) 태스크(Task)라고도 합니다. 프로세스는 다음과 같이 여러 형태로 정의할 수 있습니다. 1. PCB를 가진 프로그램 2. 실기억장치에 저장된 프로그램 3. 프로세서가 할당되는 실체로서, 디스패치가 가능한 단위 4. 프로시저가 활동중인 것 5. 비동기적 행위를 일으키는 주체 6. 지정된 결과를 얻기 위한 일련의 계통적 동작 7. 목적 또는 결과에 따라 발생되는 사건들의 과정 8. 운영체제가 관리하는 실행 단위 ※ 프로시저란? 한 프로그램은 여러개의 작은 프로그램으로 분할될 수 있는데 이떄 분할된 작은 프로그램을 의미하며, 부 프로그램이라고도 합니다. 프로세스 상태 전..
절대로더 링커(연결 편집기) 링커는 언어 번역 프로그램이 생성한 목적 프로그램들과 라이브러리 또 다른 실행 프로그램등을 연결하여 실행 가능한 로드 모듈을 만드는 시스템 소프트웨어이며 연결 편집기라고도 합니다. 링커는 연결 기능만 수행하는 로더의 한 형태로, 링커에 의해 수행되는 작업을 링킹이라고 합니다. 로더란 무엇인가? 로더는 컴퓨터 내부로 정보를 들여오거나 로드 모듈을 디스크 등의 보조기억장치로 부터 주 기억장치에 적재하는 시스템 소프트웨어 입니다. 로더의 기능 1. 할당 : 실행 프로그램을 실행시키기 위해 기억장치 내에 옮겨놓을 공간을 확보하는 기능 2. 연결 : 부 프로그램 호출 시 그 부 프로그램이 할당된 기억장소의 시작주소를 호출한 부분에 등록하여 연결하는 기능 3. 재배치 : 디스크등의 보조..
매크로 프로그래밍의 개념 및 특징 매크로(Macro)는 프로그램 작성 시 한 프로그램 내에서 동일한 코드가 반복 될 경우 반복되는 코드를 한번만 작성하여 특정 이름으로 정의한 후 그 코드가 필요할 때마다 정의된 이름을 호출하여 사용하는 기법입니다. 1. 일종의 부 프로그램(Sub-Program)으로 개방 서브루틴(Poened Sub-routine)이라고도 합니다. 2. 매크로는 문자열 바꾸기와 같이 매크로 이름이 호출되면 호출된 횟수만큼 정의된 매크로 코드가 해당 위치에 삽입되어 실행됩니다. 3. 매크로 정의 내에 또 다른 매크로를 정의할 수 있습니다. 4. 사용자의 반복적인 코드 입력을 줄여줍니다. 5. 매크로 정의형태는 주로 어셈블리어 형태입니다. 매크로 용어 매크로 정의 : 프로그래머가 일정한 형식..
어셈블리어란? 어셈블리어란 사용자가 이해하기 어려운 기계어 대신에 명령 기능을 쉽게 연상할 수 있는 기호를 기계어와 1:1로 대응시켜 코드화한 기호 언어입니다. 1. 어셈블리어로 작성한 원시 프로그램은 어셈블러를 통해 목적 프로그램(기계어)로 어셈블 하는 과정을 거쳐야 합니다. 2. 사용자가 프로그램을 쉽게 읽고 이해할 수 있습니다. 3. 프로그램에 기호화된 명령 및 주소를 사용합니다. 4. 어셈블리어의 기본 동작은 동일하지만 작성 CPU마다 사용되는 어셈블리어가 다를 수 있습니다. 5. 어셈블리어에서 사용되는 명령은 의사 명령과 실행 명령으로 구분할 수 있습니다. 컴파일 vs 어셈블 고급언어로 작성한 원시 프로그램을 컴파일러가 기계어로 번역하는 작업을 컴파일(Complie)한다고 하고 어셈블리어로 작성..
컴파일러와 인터프리터는 고급언어로 작성된 원시 프로그램(Source Program)을 목적 프로그램(Object Program)으로 번역하는 번역 프로그램이며, 프로그램 번역 방식에 따라 구분됩니다. ※ 원시프로그램 고급언어나 어셈블리어로 작성된 프로그램 컴파일러 1. 컴파일러는 고급 언어로 작성된 프로그램 전체를 목적 프로그램으로 번역한 후, 링킹 작업을 통해 컴퓨터에서 실행 가능한 실행 프로그램을 생성합니다. 2. 번역 실행 과정을 거쳐야 하기 때문에 번역 과정이 번거롭고 번역 시간이 오래 걸리지만, 한번 번역한 후에는 다시 번역하지 않으므로 실행 속도가 빠릅니다. 3. 컴파일러를 사용하는 언어에는 C언어 Java 등이있습니다. 인터프리터 1. 인터프리터는 고급 언어로 작성된 프로그램을 한 줄 단위로..
프로그래밍 언어란? 프로그래밍 언어는 컴퓨터를 이용하여 특정 문제를 해결하기 위한 프로그램을 작성하기 위해 사용되는 언어입니다. 프로그래밍 언어는 일반적으로 저급언어(기계어, 어셈블리어)와 고급 언어(컴파일러 언어) 로 분류할 수 있습니다. 저급 언어 저급언어(Low Level Language)는 기계어와 어셈블리어로 구분됩니다. 기계어 컴퓨터가 직접 이해할 수 있는 언어입니다. 0과 1의 2진수 형태로 표현되며 수행시간이 빠릅니다. CPU에 내장된 명령들을 직접 사용하는 것으로, 프로그램을 작성하고 이해하기가 어렵습니다. 기종마다 기계어가 다르므로 언어의 호환성이 없습니다. 어셈블리어 기계어와 1:1로 대응되는 기호로 이루어진 언어로, 니모닉(Mnemonic) 언어 라고도 합니다. 하드웨어 제어에 주로..
운영체제에는 여러가지 운용기법들이 존재하는데 크게 7가지가 존재합니다. 오늘날 사용하는 OS의 운용기법은 주로 다중 모드 처리 방식과 분산 처리 시스템 방식을 사용합니다. 1. 일괄처리 시스템 일괄 처리 시스템은 초기의 컴퓨터 시스템에서 사용된 형태로, 일정량 또는 일정 기간 동안 데이터를 모아서 한꺼번에 처리하는 방식입니다. 1. 일괄처리를 위해 적절한 작업 제어 언어(Job Control Language)를 제공해야 합니다. 2. 컴퓨터 시스템을 효율적으로 사용할 수 있습니다. 3. 반환시간(Turn Around Time)이 늦지만 하나의 작업이 모든 자원을 독점하므로 CPU 유휴 시간이 줄어듭니다. 4. 급여 계산, 지불 계산, 연말 결산등의 업무에 사용됩니다. 2. 다중 프로그래밍 시스템 다중 프..
운영체제란? 운영체제(Operating System)는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임입니다. 운영체제는 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종으로, 다른 응용프로그램이 유용한 작업을 할 수 있도록 환경을 제공해 줍니다. 운영체제의 종류 운영체제의 종류에는 WIndows 98, Windows10, UNIX, LINUX, MS-DOS등이 있습니다. 단일 작업 처리 시스템에는 DOS, 다중 작업 처리 시스템에는 WINODWS, UNIX, LINUX등이 사용됩니다. 주로 WINDOWS는 개인용 UNIX, LINUX는 서버용 운영체제로 사용됩니다. 운영체제의..
시스템 소프트웨어 1. 시스템 소프트웨어는 시스템 전체를 작동시키는 프로그램으로, 프로그램을 주기억장치에 적재시키거나 인터럽트 관리, 장치관리, 언어 번역 등의 기능을 담당합니다. 2. 시스템 소프트웨어의 가장 대표적인 프로그램으로 운영체제가 있으며, 그 외에는 언어 번역 프로그램, 매크로 프로세서, 링커, 라이브러리, 정렬/합병 프로그램, 로더 등이 있습니다. 3. 시스템 소프트웨어는 기능별로 제어프로그램과 처리 프로그램으로 분류 할 수 있습니다. 제어프로그램 1. 감시프로그램 2. 작업 제어 프로그램 3. 자료 관리 프로그램 제어 프로그램은 시스템 전체의 작동 상태 감시, 작업의 순서 지정, 작업에 사용되는 데이터 관리 등의 역할을 수행하는 것으로 감시 프로그램과 작업 제어 프로그램으로 구분할 수 있..
MYSQL이나 MSSQL에서 대표적인 데이터 타입 변환함수는 CONVERT인데요. 오라클에서는 동작하지 않습니다. 오라클에서 데이터 타입 변경을 하고 싶을때는 CONVERT가 아닌 다른 함수를 사용하여야 합니다. 함수명은 TO_[데이터타입]인데요. 대표적으로 TO_CHAR , TO_NUMBER, TO_DATE 등이 있습니다. TO CHAR (CHAR형으로 변경) --사용법-- SELECT TO_CHAR([컬럼명]) FROM [테이블명] --예제-- SELECT TO_CHAR(10000) FROM DUAL --INT TO CHAR SELECT TO_CHAR(SYSDATE) FROM DUAL --DATE TO CHAR SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD') FROM DUAL --D..
오라클에서 조건을 주는 방법은 여러가지가 있습니다. 대표적으로는 CASE문 IF문이 있는데 이런 조건문을 사용하게 되면 쿼리문이 쓸데없이 길어질요소가 존재합니다. 하지만 조건이 동등문(=)일경우에 간단하게 사용할 수 있는 DECODE함수라는것이 있습니다. 이번 포스팅에서는 오라클에서 제공하는 DECODE함수를 통해 간결하게 조건문을 주는 방법에 대해 알아보도록 하겠습니다. 경우에 따라서는 DECODE함수를 중첩해서 쓰거나 서브쿼리와 같이 사용하셔도 됩니다. DECODE함수는 어제 포스팅했었던 NVL함수와 마찬가지로 오라클에서만 존재하는 함수이므로 MY_SQL이나 MS_SQL과의 호환을 염두하신다면 사용을 피하셔야합니다. 사용법 DECODE(컬럼,조건,TRUE 결과값,FALSE 결과값) 예제 --TYPE ..