운영체제
-
프로세스에 대한 연산운영체제/프로세스 2018. 2. 3. 16:19
대부분의 시스템 내의 프로세스들은 병행 실행될 수 있으며반드시 동적으로 생성되고 제거 되어야 한다. 프로세스 생성프로세스는 실행 도중에 프로세스 생성 시스템 호출을 통하여 여러 개의 새로운 프로세스를 생성한다.생성하는 프로세스를 부모 프로세스 생성되는 프로세스를 자식 프로세스라고 한다.이 결과 프로세스 트리를 형성한다. 현대 운영체제들은 프로세스 식별자를 통해서 프로세스를 구분한다.프로세스가 자식 프로세스를 생성할 때 자식 프로세스는 자신의 임무를 달성하기 위해 자원이 필요하다.자식 프로세스는 운영체제로부터 직접 자원을 얻거나, 부모 프로세스 자원의 부분을 사용한다. 부모 자식간 자원 공유 방식모든 자원 공유일부 자원만 공유자원을 공유하지 않음 프로세스가 새로운 프로세스를 생성할 때 두 프로세스를 실행시..
-
스케줄러운영체제/프로세스 2018. 2. 3. 16:07
프로세스는 일생 동안 다양한 스케줄링 큐 사이를 이주한다.운영 체제는 스케줄링 목적을 위해서 프로세스들을 큐에서 선택해야 한다.선택 절차는 스케줄러에 의해 수행된다. 스케줄러의 종류단기 스케줄러 (CPU 스케줄러) : 실행 준비가 완료되어 있는 프로세스들 중에서 선택하여 이들 중 하나에게 CPU를 할당한다.단기 스케줄링은 자주 수행되므로 속도가 빨라야 한다.장기 스케줄러 (작업 스케줄러) : 디스크 상의 프로세스를 선택하여 메모리에 적재한다.단기 스케줄링에 비해 가끔 실행된다.장기 스케줄러는 다중 프로그램의 정도를 제어한다. 대부분의 프로세스들은 입출력 중심 또는 CPU 중심으로 구분된다.입출력 중심 프로세스 : 연산보다 입 출력 수행에 더 많은 시간을 소요하는 프로세스CPU 중심 프로세스 : 연산에 시..
-
프로세스 스케줄링운영체제/프로세스 2018. 2. 3. 16:01
다중 프로그래밍의 목적은 CPU 이용을 최대화 하기 위해 항상 어떤 프로세스가 실행되도록 하는 데 있다.시분할의 목적은 각 프로그램이 실행되는 동안 프로세스들 사이에서 CPU를 빈번하게 교체하는 것이다.이 목적을 달성하기 위해서 프로세스 스케줄러는 CPU에서 실행 가능한 여러 프로세스 중 하나를 선택한다.단일 처리기 시스템에서는 실행중인 프로세스가 하나 이상 있을 수 없기 때문에프로세스가 여러 개 있다면 나머지 프로세스들은 CPU가 자유로워 질 때까지 대기해야 한다. 스케줄링 큐작업 큐 : 시스템 안의 모든 프로세스로 구성된다.준비 완료 큐 : 주 메모리에 존재하며 준비 완료 상태에서 실행을 대기하는 프로세스들로 구성된다.장치 큐 : 특정 입출력 장치를 대기하는 프로세스의 리스트들로 구성된다. 큐잉 도표..
-
프로세스 개념운영체제/프로세스 2018. 2. 3. 15:57
프로세스 실행중인 프로그램을 말하며, 현대 시분할 시스템에서 프로세스는 작업의 단위이다. 시분할 시스템은 사용자 프로그램 또는 태스크를 수행한다. 프로세스는 프로그램카운터, 레지스터, 스택, 텍스트 섹션, 데이터 섹션을 포함한다. 프로그램과 프로세스의 차이 프로그램은 디스크에 저장된 수동적인 존재이고 프로세스는 프로그램 카운터 및 관련된 자원의 집합을 가진 능동적인 존재이다. 다중 인스턴스 : 동일한 프로그램이 여러 개의 프로세스가 될 수도 있다. 프로세스 상태 프로세스는 실행되면서 그 상태가 변한다. 프로세스의 상태는 그 프로세스의 현재 활동에 따라서 정의된다. 새로운 : 프로세스가 생성 중 실행 : 명령어들이 실행되고 있음 대기 : 프로세스가 어떤 사건이 일어나기를 기다림 준비 완료 : 프로세스가 C..
-
운영체제 디버깅운영체제/시스템 구조 2018. 2. 3. 15:47
디버깅은 하드웨어와 소프트웨어에서의 시스템 오류를 발견하고 수정하는 행위이다. 성능 문제는 버그로 간주되므로 병목 현상을 제거하여 성능을 향상시키는 성능 조정도 디버깅에 포함된다. 장애 분석 장애가 발생할 시 운영체제는 오류 정보를 로그 파일에 기록한다. 프로그램의 오류는 프로세스가 사용하던 메모리를 캡처한 코어 덤프를 생성한다. 운영체제의 오류는 커널 메모리가 포함된 충돌 덤프를 생성한다. 성능 조정 병목 현상을 제거하여 성능을 향상시킨다. 운영체제는 병목 지점 발견을 위해 시스템 성능을 감시하고 시스템 동작을 측정할 수 있는 수단을 제공한다.
-
운영체제 구조운영체제/시스템 구조 2018. 2. 3. 14:17
MS DOS최소의 공간에 최대의 기능을 제공하도록 작성됨모듈들로 분할되지 않음인터페이스의 기능 계층이 분리되지 않음 초기UNIX커널과 시스템 프로그램으로 구성됨하나의 계층으로 결합되기에는 엄청나게 많은 기능을 제공함이러한 구조는 구현하기 어렵고 유지 보수하기 어렵지만 성능면에서는 장점을 가진다. 커널시스템 호출 인터페이스 아래와 물리적 하드웨어의 모든 것커널은 시스템 호출을 통하여 기능들을 제공한다. 계층적 접근운영체제가 여러 개의 계층으로 분할되어 있음최 하위 계층은 하드웨어, 최 상위 계층은 사용자 인터페이스장점 : 구현과 디버깅이 간단함어려운 점 : 여러 계층을 적절히 정의 하는 것각 층은 자신보다 하위 수준의 층에 의해 제공된 연산들만 사용해 구현한다.이 접근 방식은 시스템 호출 오버헤드로 인해 ..
-
운영체제 설계 및 구현운영체제/시스템 구조 2018. 2. 3. 14:08
설계 목표 시스템 설계시에는 시스템의 목표와 명세를 정의해야 한다. 설계는 하드웨어와 시스템 유형에 의해서도 영향을 받는다. 세부 요구 조건 사용자 목적 : 운영체제는 접근성, 편리성, 신뢰성, 안전성, 신속성을 가져야 한다. 시스템 목적 : 운영체제는 설계, 구현, 유지보수가 쉬워야 하며 적응성, 신뢰성, 무오류, 효율성을 가져야 한다. 기법과 정책 한 가지 중요한 원칙은 기법으로부터 정책을 분리하는 것이다. 기법 : 어떤 일을 어떻게 할 것인가를 결정하는 것 정책 : 무엇을 할 것인가를 결정하는 것 정책은 장소가 바뀌거나 시간의 흐름에 따라 변경될 수 있다. 최악의 경우 정책의 각 변경이 기법의 변경을 요구하게 된다. 정책의 변경에 민감하지 않은 일반적인 기법이 보다 바람직하다. 구현 초창기 운영체제..
-
시스템 프로그램운영체제/시스템 구조 2018. 2. 3. 12:36
시스템 프로그램은 프로그램 개발과 실행을 위해 보다 편리한 환경을 제공한다. 시스템 프로그램의 범주 파일 관리 : 파일과 디렉토리를 생성, 삭제, 조작 상태 정보 : 시스템의 상태 정보 파일 변경 : 에디터 프로그래밍 언어 : 컴파일러, 어셈블러, 해석기 프로그램 적재와 수행 : 적재기 통신 : 프로세스, 사용자, 다른 컴퓨터 시스템 사이. 가상 접속을 이루기 위한 기법 제공 백그라운드 서비스 : 부팅 시간에 시작되어 임무 완수 후 종료되거나 시스템이 종료될 때까지 실행됨
-
시스템 호출의 유형운영체제/시스템 구조 2018. 2. 3. 12:34
프로세스 제어, 파일 조작, 장치 관리, 정보 유지 보수, 통신 등으로 분류된다. 프로세스 제어실행중인 프로그램은 정상적 혹은 비정상으로 멈출 수 있어야 한다.한 프로그램을 실행하고 있는 프로세스나 잡이 다른 프로그램을 적재하고 실행할 수 있어야 한다.새로운 잡이나 프로세스를 생성할 때 그들의 실행을 제어 할 수 있어야 한다.이러한 제어는 잡 또는 프로세스의 속성을 결정하고 재 설정 할 수 있는 능력을 필요로 한다.새로 생성된 잡 또는 프로세스가 잘못되었거나 더 이상 필요 없다면 종료 할 수 있어야 한다.새로운 잡이나 프로세스를 생성한 후에는 실행이 끝나기를 기다려야 할 필요가 있을 수 있다.이 경우 잡이나 프로세스들은 그 사건이 일어나면 신호를 보내야 한다.공유하는 데이터의 일관성을 제공하기 위해 운영..