전체 글 1383

09_프로세스 개념

09_프로세스 개념 초기의 컴퓨터 시스템은 한 번에 하나의 프로그램만 수행 할 수 있었다. 현대의 컴퓨터 시스템은 메모리에 다수의 프로그램들이 적재되어 병행 수행되는 것을 허용 한다. 이러한 발전은 프로그램을 보다 견고하게 제어하고 보다 구획화 할 것이 필요 했다. 이러한 필요성으로 프로세스 라는 개념이 탄생 하였으며 프로세스는 수행중인 프로그램 이란 뜻을 가지게 되었다. 현대의 컴퓨터에서 프로세스란 시분할 시스템에서 작업의 단위이기도 하다. 프로세스는 일괄 처리 시스템 작업이나 시분할 시스템 사용자들의 태스크를 모두 지칭 한다. 또한 프로그램 카운터의 값과 처리기 레지스터의 내용으로 대표되는 현재 활동을 포함 한다. 프로세스는 일반 적으로 함수의 매개변수 복귀 주소와 지역 변수와 같은 임시적인 자료를 ..

08_시스템 부트

08_시스템 부트 하드웨어를 사용하려면 운영체제를 설치해야 한다. 하지만 운영체제가 설치 되었다고만 해서 하드웨어는 커널이 어디에 있는지, 어떻게 적재하고 사용 할까? 대부분의 컴퓨터 시스템에서는 부트스트랩 프로그램, 또는 부트스트랩 적재기로 알려져 있는 작은 크기의 코드가 커널을 찾고 그것을 메인 메모리에 적재하고 수행을 시작한다. 컴퓨터가 전원을 켜거나 재부팅 등의 명령을 받으면 명령 레지스터는 미리 지정된 메모리 위치를 가리키게 되고 그 곳에서부터 실행을 시작 한다. 그 위치에는 최초의 부트스트랩(bootstrap)이 존재한다. RAM은 시스템 시작 시에 알 수 없는 상태가 되기 때문에 이 프로그램은 ROM(Read only Memory) 안에 저장 된다.(흔히 BIOS라 불리는 영역) ROM은 초..

07_가상 머신(Virtual Machine)

07_가상 머신(Virtual Machine) 가상 머신(Virtual Machine)의 기본적인 개념은 한 컴퓨터의 하드웨어(CPU, 메모리, 디스크 드라이브, 네트워크 등)가 다수의 실행 환경을 제공하도록 추상화 하는 것이다. 각 개별적인 실행 환경이 자신만의 독립된 컴퓨터를 사용하는 환경을 제공 하는 것이다. 가상 머신을 구성하는 가장 큰 이유는 모두 동일한 하드웨어를 공유하면서 다수의 실행 환경(운영체제)을 동시에 수행 할 수 있다는 것이다. 또한 여러 가지 시스템 자원에 대해 완전한 보호가 이루어지므로 각 가상 머신은 강한 수준의 보안을 제공 한다. 그러나 동시에 가상 머신들은 자원을 직접적으로 공유 할 수 없어 가상 디스크를 공유하거나 네트워크 등을 통하여 공유 할 수 있다. 가상 머신의 접근..

06_운영체제 구조

06_운영체제 구조 운영체제와 같이 크고 복잡한 시스템은 적절하게 동작하고 쉽게 변경 될 수 신중히 제작되어야 한다. 일반 적인 접근 방법은 한 개의 일관된 시스템보다는 태스크를 작은 구성요소로 분리 하는 것이다. [간단한 구조(Simple Structure)] 운영체제는 처음에는 소형이면서 간단하고 제한된 시스템으로 시작 되었다. 최소의 공간에 최대의 기능들을 제공하도록 작성되어 있어서 모듈들로 주의 깊게 분할 되지 않았다. MS-DOS와 UNIX를 예를 들어 보자. MS-DOS : 인터페이스와 기능 계층이 잘 분리되어 있지 않다. 예를 들면 응용 프로그램이 기본 입/출력 루틴을 통하여 디스플레이와 디스크 드라이브에 직접 쓰기가 가능 하다. 이런 자유는 프로그램을 취약하게 만들었다. 따라서 사용자 프로..

05_운영체제 구조_설계 및 구현

05_운영체제 구조_설계 및 구현 설계 및 구현에서는 운영체제를 설계하고 구현할 때 우리가 당면하는 문제점을 논의한다. [설계 목표] 시스템을 설계하는데 있어 첫 번째 문제점은 시스템의 목표와 명세를 정의하는 일이다. 시스템 설계는 하드웨어와 시스템의 유형(일괄처리, 시분할 처리, 단일 사용 자 등)의 선택에 의해 영향을 받는다. 시스템 설계의 요구 조건들을 명세하는 것은 매우 어려운 일이지만 크게 사용자 목적과 시스템 목적 두 그룹으로 나눌 수 있다. 사용자 목적은 사용자들은 시스템이 사용하기 쉽고 편리하며 배우기 쉽고 안전해야 하는 등 요구사항이 있다. 이러한 명세는 어떻게 목적을 달성할 것인가에 대한 합의가 없기 때문에 시스템 설계에 있어 특별히 유용하지는 않다. 즉 운영체제는 설계, 구현, 유지보..

04_운영체제 구조_시스템 프로그램

04_운영체제 구조_시스템 프로그램 시스템은 시스템 프로그램의 집합체이다. 최하위 수준은 하드웨어 이고 그 위에 운영체제와 시스템 프로그램, 마지막에 응용 프로그램의 집합으로 이루어져 있다. 시스템 프로그램은 프로그램 개발과 실행을 위해 보다 편리한 환경을 제공 한다. 일부는 단순한 호출에 대한 사용자 인터페이스 이며 나머지는 훨씬 복잡한 시스템 이다. 시스템 프로그램에 대해 6개의 범주로 구분하여 보자. 파일 관리 : 파일과 디렉토리를 생성, 삭제, 복사, 이름변경, 인쇄, 덤프, 리스트 등 파일의 조작과 디렉토리를 조작 한다. 상태 정보 : 날짜, 시간, 사용 가능한 메모리 정보 등 단순한 정보 외에 상세한 성능, 로깅, 디버깅 정보 등을 제공한다. 파일 변경 : 디스크나 다른 저장 장치에 저장된 파..

03_운영체제 구조_시스템 호출의 유형

03_운영체제 구조_시스템 호출의 유형 시스템 호출은 다섯 가지의 주요 범주로 묶을 수 있다. [프로세스 제어] 끝내기(End), 중기(Abort) 적재(Load), 실행(Execute) 프로세스 생성, 프로세스 종료 프로세스 속성(Attribute) 획득, 프로세스 속성 설정 시간을 기다림 사건을 기다림(Wait Event), 사건을 알림(Signal Event) 메모리 할당 및 자유화 [파일 조작(File Manipulation)] 파일 생성(Create file), 파일 삭제(Delete File) 열기(Open), 닫기(Close) 읽기, 쓰기 위치변경(Reposition) 파일 속성 획득 및 설정 [장치 관리(Device Management)] 장치를 요청(Request Device), 장치를 ..

02_운영체제 구조_시스템 호출 (System Call)

02_운영체제 구조_시스템 호출 (System Call) 시스템 호출은 운영체제에 의해 사용 가능하게 된 서비스에 대한 인터페이스를 제공한다. 예를 들어 하드웨어를 접근해야 하는 작업 등의 특정 ROW LEVEL 작업은 어셈블리 명령을 사용하여 작성되어야 하지만 시스템 호출은 일반적으로 C, C++ 등과 같은 언어로 작성된 루틴 형태로 제공 된다. 한 파일로부터 자료를 읽어서 다른 파일로 복사하는 간단한 프로그램을 작성하는 예를 들어 보자.파일의 이름을 읽고 파일에 대한 접근 권한을 확인하고 파일을 열고 하는 등의 일련의 과정이 있을 것이다. 이를 도식화 하면 다음과 같다. 대부분의 사용자들은 이러한 정도의 상세를 결코 알지 못한다. 대부분의 응용 개발자들은 응용 프로그래밍 인터페이스(Applicatio..

01_운영체제 구조 _사용자인터페이스

01_운영체제 구조 _사용자인터페이스 운영체제는 프로그램 실행 환경을 제공 한다. 운영체제는 프로그램과 프로그램의 사용자에게 어떤 서비스를 제공한다. 물론 제공되는 서비스는 운영체제에 따라 다르지만 공통적인 속성은 다음과 같다. 사용자 인터페이스(User Interface) : 거의 모든 운영체제는 사용자 인터페이스(UI)를 갖고 있다. 이 인터페이스는 여러 형태를 가지고 있을 수 있으며 명령어 라인 인터페이스(Command Line Interface: CLI)로 문자 명령을 사용 한다. 다른 방법은 일괄 처리 인터페이스(Batch Interface)로 명령과 이들 명령을 제어하는 지시들이 파일로 입력되며 이들 파일이 수행한다. 가장 일반적으로 그래픽 사용자 인터페이스(GUI)가 사용된다. 이것은 입/출..

MySQL/MariaDB 백업 & 복원 - mysqldump

MySQL/MariaDB 백업 & 복원 - mysqldump Version : Mariadb 5.5.4.2-WinX64 MySQL/MariaDB 백업 및 복원에 대해서 알아본다. 이번 백업은 MySQL 시절부터 널리 알려진 mysqldump를 사용한다. mysqldump는 논리적 백업을 수행한다. 데이터 크기가 비교적 작은 경우 유연하게 사용할 수 있다. 백업파일은 SQL 형식으로 백업 파일을 생성한다. 이렇게 생성된 백업 형식은 MariaDB, MySQL 또는 완전히 다른 DBMS에서 쉽게 가져올 수 있다. mysqldump는 테이블 및 트리거를 덤프한다. 저장 프로시저나 뷰 등은 명시적으로 추가 매개변수를 사용하여 명시적으로 작성해야 한다. [기본 사용 문법] -p 옵션 후 명시적으로 패스워드를 적지..

MySQL, MariaDB 2015.07.16