시스템/운영체제
-
프로세스 스케줄링시스템/운영체제 2020. 6. 25. 10:05
프로세스 스케줄링 큐 3가지의 스케줄링 queue 스케줄링 큐에는 3가지 큐가 있다. job queue, ready queue와 wait(or device) queue이다. job queue는 시스템 내에 있는 모든 프로세스의 집합이다. ready queue는 메인 메모리에 상주하면서 실행될 준비를 하고 기다리는 프로세스 집합이다. 즉, 스케줄러에게 선택되어 CPU에 올라가기를 기다리는 프로세스들의 집합이다. 프로세스에게 CPU 코어가 할당되면 프로세스는 잠시 동안 실행되어 종료되거나 인터럽트 되거나 I/O 요청의 완료와 같은 특정 이벤트가 발생할 때까지 기다린다. 입출력 장치는 프로세서보다 상당히 느리게 실행되므로 프로세스는 I/O가 사용 가능할 때까지 기다린다. 디스크는 다른 여러 프로세스들의 I/O..
-
프로세스 개념시스템/운영체제 2020. 6. 23. 18:51
프로세스 vs 프로그램 프로세스와 프로그램은 엄밀히 말하자면 다르다. 프로그램은 디스크에 단순히 존재하는 수동적인 개체인 반면 프로세스는 메모리에서 수행 중인 프로그램으로, 다음 수행할 명령을 지정하는 PC(Program Counter)를 가진 능동적인 개체다. 프로세스 상태 프로세스는 실행되면서 그 상태가 변한다. 각 프로세스는 다음 상태들 중 하나다. new : 프로세스가 생성 중이다. ready : 프로세스가 ready queue에 들어가서 CPU에 할당되기를 기다리고 있다. runnging : 명령어들이 실행되고 있는 중이다. waiting : 프로세스가 waiting queue에 들어가서 I/O 완료와 같은 이벤트 발생을 기다리고 있다. terminated : 프로세스가 실행을 종료한다. PCB..
-
운영체제 구조시스템/운영체제 2020. 5. 26. 07:10
Monolithic 구조 모놀리식 구조는 가장 간단한 운영체제 구조다. 이 구조는 최소한의 공간(자원)을 사용하여 최대의 기능들을 제공하도록 작성되어 있어서 모듈들로 주의 깊게 분할되지 않았다. 즉 인터페이스와 기능 계층이 잘 분리되어 있지 않다. 예를 들어, 응용 프로그램은 기본 입출력 루틴을 통하여 디스플레이와 디스크 드라이브에 직접 쓰기가 가능하다. 이러한 권한은 오류(혹은 악의적인 프로그램)에 취약하며, 사용자 프로그램이 고장나면 시스템 전체가 고장나고 하드웨어적 기능도 제한받았다. 이러한 예로 MS-DOS가 있다. 계층적 구조 운영체제는 다양한 방식으로 모듈화가 될 수 있고, 그 중 한 방식이 계층적 구조다. 계층적 구조에서 최하위 층은 하드웨어이고 최상위 층은 사용자 인터페이스다. 옛날 UNI..
-
운영체제 설계 및 구현시스템/운영체제 2020. 5. 25. 14:07
설계 목표 시스템을 설계할 때 첫번째로 해야할 것은 목표(Goal)와 명세(Specification)를 정의하는 것이다. 시스템 설계는 하드웨어 종류와 시스템 유형의 선택에 영향을 받는다. 무엇을 목적(목표)으로 어떻게 시스템을 만들 것인지를 구상해야 한다. 일단 운영체제를 만들 때 '사용자 목적'과 '시스템 목적'에 따라서 나뉜다. 운영체제를 사용자 목적으로 만들어질 때는 운영체제는 사용하기 쉽고 편리하며, 배우기 쉽고, 믿을 수 있고, 안전하고, 신손해야 한다. 하지만 이런 부분은 너무 추상적이고 구체적으로 합의된 부분이 없기 때문에, 시스템 설계에 있어서 고려하기에는 유용하지 않다. 운영체제를 시스템 목적으로 만들어질 때는 설계, 구현, 유지 보수가 쉬워야 하며, 적으성, 신뢰성, 무오류, 효율성을..
-
시스템 프로그램시스템/운영체제 2020. 5. 22. 07:39
다음은 컴퓨터 시스템 구성요소에 대한 구성도이다. 최하위에 HW가 있고 그 위에 운영체제, 시스템 프로그램(유틸리티)과 응용 프로그램이 있다. 그 중 우리가 보아야 할 것은 시스템 프로그램이다. 시스템 프로그램은 프로그램 개발과 실행을 위해 보다 편리한 환경을 제공한다. 실제로 사용자는 system call보다 시스템 프로그램을 사용하여 시스템 자원을 이용한다. 시스템 프로그램의 범주 파일 관리 : 이들 프로그램은 파일과 디렉터리를 생성, 삭제, 복사 ,개명(rename), 인쇄, 덤프, 리스트와 일반적인 조작을 한다. 상태 정보 : 어떤 프로그램들은 단순히 시스템에서 날짜, 시간, 사용 가능한 메모리와 디스크 공간의 양, 사용자 수 혹은 이와 비슷한 상태 정보를 묻는다. 몇몇 시스템은 환경설정 정보를 ..
-
시스템 호출시스템/운영체제 2020. 5. 20. 16:47
시스템 호출이란? 시스템 호출은 운영체제가 제공하는 서비스에 대한 인터페이스를 제공하고 프로세스가 운영체제와 통신하는 유일한 방법이다. 특정 저수준 작업은 어셈블리 명령을 사용하여 작성되는데, 이러한 호출은 일반적으로 C와 C++ 언어로 작성된 루틴형태로 제공된다. 예) cp in.txt out.txt(I/O system call) 프로그래밍 언어들을 위한 실행시간 지원 시스템은 시스템 호출 인터페이스를 제공한다. 시스템 호출 인터페이스는 API 함수의 호출을 가로채어 필요한 운영체제 시스템 호출을 부른다. 시스템 호출 과정에서 요구되는 필요한 정보가 사용자 모드에서 커널 모드로 전달되어야 한다. 일반적으로, 각 시스템 호출에는 고유의 번호가 할당되는데 시스템 호출 인터페이스는 이 번호에 따라 색인되는 ..
-
운영체제 서비스시스템/운영체제 2020. 5. 11. 18:01
운영체제가 사용자에게 제공하는 서비스 사용자 인터페이스 유저 인터페스로는 크게 3가지가 있다. 명령어 라인 인터페이스 CLI(Command Line Interface) 그래픽 기반 사용자 인터페이스 GUI(Grapic Uer Interface) 터치스크린 인터페이스 TSI(Touch-Screen Interface) CLI는 windows의 cmd창 UNIX/LINUX의 terminal 등이 있다. CLI는 GUI에 비해 훨씬 가벼워서 대부분의 서버는 CLI로 구성되어 있다. CLI는 명령어 해석기라고도 하며, 사용자가 명령어를 직접 입력한다. 때때로 kernel에서 구현되거나 시스템 프로그램으로 구현된다. 그리고 사용자의 취향에 따라 여러 명령어들을 조합해서 자동화 프로그램(.sh)을 만들 수 있는 있는..
-
입출력 서브시스템시스템/운영체제 2020. 5. 8. 07:24
운영체제의 목적 중 하나는 사용자에게 특정 하드웨어 장치의 특성을 숨기는 것이다. (즉, 사용자가 컴퓨터 내부에서 하드웨어가 어떻게 돌아가는지 잘 몰라도 이용하는데 불편함이 없어야 한다.) 예를 들면, UNIX에서 입출력 장치의 특성은 입출력 서브시스템에 의해 숨겨져 있다. 운영체제의 I/O 서브시스템 입출력에서의 메모리 관리 버퍼링(buffering) : 전송되는 동안 임시적으로 데이터를 저장한다. 캐싱(caching) : 성능을 위해 반복적으로 사용하는 데이터를 빠른 저장장치에 저장한다. 스풀링(spooling) : 어떤 작업의 출력과 다른 작업의 입력이 겹치는 것이다. 일반적 장치 드라이버 인터페이스 제공 특정 하드웨어 장치들을 위한 드라이버 제공