본문 바로가기

Programming/UNIX_linux

(7)
운영체제의 구조 ( 스케줄링 ) 스케줄링이란 CPU 사용권을 요청하는 프로세스들이 여럿 있을 때 이들 경쟁 관계에 있는 프로세스들 중에서 어떤 프로세스에게 CPU를 할당할 것인가를 결정하는 정책이다. 프로세스 스케줄링에 있어 기준은 공평성과 효율성이다. 특정 프로세스에 대해 자원 할당이 불공평 하게 지연되어서는 안되며 , 스케줄링 과정 자체도 효율적이어야 한다. 스케줄링의 목표는 프로세스의 반응 기간과 단위 시간당 처리량을 늘이는 것이다. 선점형 멀티태스킹에서는 운영체제가 시스템 자원 특히 CPU를 완전히 선점한 상태에서 각 프로세스에게 CPU를 할당한다. 이 경우 보통 10ms 정도의 시간 단위로 CPU를 프로세스별로 돌아가면서 할당 비 선점형 멀티태스킹에서는 운영체제가 아니라 프로그램의 프로세슫르이 CPU를 제각ㄱ ㅣ알아서 사용하고..
운영체제의 구조 ( 프로세스 ) 프로세스의 의미는 메모리에 로드되어 실행 중인 프로그램을 말한다. 프로그램이 실행 가능 하려면 CPU가 인식할 수 있는 기계어로 구성되어 디스크에 저장되어야 한다. 이 상황에서 프로그램에 대해 실행 요청이 오면 바이너리 코드는 비로소 메인 메모리에 적재되고 실행 가능한 상태가 되는데, 이와 같은 상태의 프로그램을 가르켜 프로세스 라고 한다. 이런 프로세스는 Task 라고 불리기도 한다. UNIX 시스템에서 임의의 프로그램이 실행되려면 하나의 프로세스(부모) 가 또 다른 프로세스(자식)를 추가로 생성한 다음, 자식 프로세스를 해당 실행 파일과 연관 지음으로써 원하는 프로그램이 실행된다. 즉 , 임의의 프로그램을 실행하라는 명령을 입력받은 프로세스는 자신과 동일한 일을 할 자식 프로세스를 생성하고 이렇게 생..
운영체제의 구조 ( 파일 시스템 ) 파일 시스템이란? 물리적인 디스크 영역에 있는 파일 또는 디렉토리의 집합을 말한다. UNIX 시스템에서는 데이터를 파일 형태로 관리하고, 이런 파일들이 모여 디렉토리 계층 구조가 된다. 파일의 종류에는 일반 데이터 파일, 실행 프로그램인 바이너리 파일, 디바이스 파일 그리고 파일의 집합체로 계층 구조의 정보를 갖는 디렉토리 파일 등이 있다. 물리적인 입출력 장치( 하드디스크 , 프린터 ) 등을 참조하는 파일이다. UNIX 시스템은 디바이스 파일을 이용해서 해당 하드웨어에 접근한다. 즉, 입 출력 장치를 하나의 파일로 인식하여 제어한다. 디바이스 파일들은 /dev 디렉토리 안에 있다. 블록 디바이스 : 입 출력시 커널 내의 특정 버퍼를 이용 ( 하드 디스크 , CD - ROM 등 ) 문자 디바이스 : 버퍼..
UNIX 의 구성 크게 세가지로 나눌 수 있다. 1. 커널 2. 쉘 3. 파일 시스템 UNIX 에서 가장 핵심적인 부분인 커널은 하드웨어와 소프트웨어의 중간에 위치한다. 커널은 항상 메모리에 상주하여 CPU, 메인 메모리, 하드디스크 등의 하드웨어 자원을 제어하면서 , 프로세스 스케줄링, 기억 장치 관리 , 파일 관리 , 시스템 호출 인터페이스 , 입출력 서비스 등의 기능을 사용자에게 제공한다. 명령어 해석기는 커널에 내장되어 있지 않으며, 응용 프로그램으로 독립되어 있다. 사용자와 UNIX 시스템간의 인터페이스 역할을 해주는 프로그램으로서 한마디로 명령어 해석기 라고 할 수 있다. 사용자가 입력한 명령어를 해석하여 그 명령이 실행 가능하도록 해 준다. 그 외에도 쉘은 작업 제어기능과 파이프 기능을 제공하여 명령어의 입력..
UNIX 운영체제 1. 대화식 ( Interactive ) 사용자와 UNIX 간의 상호작용은 명령어 해석기인 Shell(쉘) 에 의하여 이루어진다. 사용자로 부터 명령을 받기 위해 UNIX는 Shell prompt(쉘 프롬프트) 를 화면에 띄운다. 이 프롬프트에 사용자가 명령어를 입력하면 shell(명령어 해석기)를 통해 시스템에 명령을 전달하고 동작을 한다. 이러한 과정은 컴퓨터와 사용자간의 대화하는 것과 유사하다. 2.멀티태스킹 ( Multitasking ) 동시에 여러 명령을 처리하는 기능. UNIX는 개발 당시부터 멀티태스킹 환경을 염두에 두고 개발하였기 때문에 안정적이고 효율적이다. 3. 멀티 유저 ( Multi-user ) 터미널(terminal)이나 네트워크를 통해서 해당 컴퓨터에 접속하여 동시에 여러 사용자..
VI 편집기 명령어 정리 1. vi 편집기 소개 £ vi(view의 약자) 편집기는 유닉스와 리눅스에서 사용하는 표준편집기로, 앞으로도 널리 사용될 것으로 전망되는 아주 유명한 에디터이다. £ vi는 입력모드, 명령모드, ex(콜론(:))모드의 3가지 모드로 작동된다. £ 어떤 파일(예 aa)을 작성할때 vi 파일명을 입력하면 vi 화면이 뜨고, 텍스트를 입력한 후 저장하고자 할때 처음 실행시키면 명령모드에서 실행되며 입력모드로 전환하여 텍스트 작업을 하게 됩니다. £ ex모드에서는 파일 입출력, vi환경변수 설정 등과 같은 작업을 할 수 있습니다. 명령모드에서 입력모드로 전환한 뒤 다시 명령모드로 들어가기 위해서는 ESC키를 누르면 됩니다. 1.1 입력모드 a : 커서의 오른쪽에서 입력을 받음 A : 라인의 마지막에서 입력을 ..
리눅스 명령어 정리 09년 1학기에 들었던 JAVA 수업에서 GUI 이전의 내용은 UNIX에서 작업을 했는데 그 때 받은 내용 1. 리눅스 기본 명령어 £ 입력된 명령어는 명령어 해석기에 의해 해석되어 수행됨 î 명령어 해석기: shell이라 하며, 주로 csh, ksh bash 등이 사용됨 £ 온라인 명령어 매뉴얼: “man 명령어"로 상세한 온라인 매뉴얼 검색 가능 £ 다음과 같이 그룹화 됨: 사용자 및 그룹관리는 root 이용자만 취급가능 î 사용자 및 그룹 관리 î 파일과 디렉토리 관리 î 프로세스 관리 î 주변장치 관리 î 텍스트 처리 î 기타 그룹 명령어 설 명 사용자 및 그룹 관리 adduser - 사용자 계정을 등록한다. 예: adduser 옵션 계정이름 useradd - 사용자 계정을 등록한다. 예: use..