개요 1969년 벨 연구소의 Ken Thompson에 의해 PDP-7에서 처음 만들어짐 1973년 C로 다시 구현 Ken Thompson이 다시 버클리판 UNIX(BSD)를 완성 1982년 AT&T에서 그때까지의 UNIX를 모아 System III를 탄생시킴 1983년 기능을 추가한 System V를 배포 현재는 표준화 기구인 X/Open에서 규정한 SPEC 1170과 CDE(Common Desktop Environment)가 표준 특징 Full Scale 운영체제 대화형 및 온라인 운영체제 컴퓨터 전문 프로그래머용 많은 교육용 프로그램 파일, 디바이스와 프로세스 간의 통신을 위한 수단은 논리적으로 동일 실시간(Real-Time) 응용에 약함 C언어로 작성되어 이해도와 이식성이 높음 비동기 병행 프로세스..
개요 Linux의 정의 워크스테이션에서 주로 사용되는 UNIX와 유사한 운영체제 증.대형급 이상에서 사용되는 UNIX와는 달리 소형급 PC에서도 활용 UNIX와 거의 비슷한 기능을 제공하며, 소스가 공개된 운영체제 Linux의 출현 배경 핀란드 헬싱키 대학 Linus Torvalds에 의해 개발 386 보호 모드에서 프로그램을 스위칭하는 작업 전환기를 구현 1991년 11월 버전 0.10이 공개되면서 보급이 확대되기 시작 UNIX와 같이 강력하면서도 동일한 환경과 소스를 공유할 수 있는 운영체제에 대한 필요성 Linux의 특징 사용성 다양한 형태의 GUI를 지원 별도의 교육을 거치지 않고도 바로 사용 가능 완벽한 멀티 유저 및 멀티 태스킹 시스템 네트워크 기반의 X-Windows 제공 관리성 통합적인 관..
개념 프로세스는 일반적으로 CPU에 의해 처리되는 사용자 프로그램, 시스템 프로그램(즉, 실행 중인 프로그램)을 의미하며 작업(Job), 태스크(Task)라고도 함 프로세스는 실행 중인 프로그램을 의미하고, 멀티 프로세싱이란 CPU 내에서 동시에 여러 프로세스가 수행되는 경우임 정의 실행 중인 프로그램 PCB를 가진 프로그램 프로세서가 할동 중인 것 프로세서에 할당된 개체 실행 중인 프로세서의 제어 경로 실제 기억 장치에 저장된 프로그램
PCB의 개요 운영체제가 프로세스 스케줄링을 위해 프로세스에 관한 모든 정보를 가지고 있는 데이터베이스를 PCB라 하며, 태스크 제어 블록(Task Control Block) 또는 작업 제어 블록(Job Control Block)일고도 함 운영체제에서 프로세스는 PCB로 나타내어지며, PCB는 프로세스에 대한 중요한 정보를 가지고 있는 자료구조 각 프로세스가 생성될 때마다 고유의 PCB가 생성되고, 프로세스가 완료되면 PCB는 제거됨 PCB에 저장되어 있는 정보 프로세스의 현재 상태 포인터 프로세스 고유 식별자 스케줄링 및 프로세스의 우선순위 CPU 레지스터 정보 주기억 장치 관리 정보 입.출력 상태 정보 계정 정보
프로세스 상태 하나의 프로세스가 시스템 내에 존재하는 동안 그 프로세스는 일련의 서로 다른 상태를 가지게 되는데, 즉 하나의 프로세스가 컴퓨터 시스템에 입력되어 완료될 때가지는 다음과 같은 여러 가지 상태 변화를 거치면서 수행 실행(Run) 상태 프로세스가 중앙 처리 장치(CPU)를 차지하고 있는 상태 준비(Ready) 상태 프로세스가 CPU를 사용하고 있지는 않지만, 언제든지 사용할 수 있는 상태 대기(Block) 상태 프로세스가 입.출력 완료 등과 같은 어떤 사건이 일어나 주기를 기다리고 있는 상태 프로세스 상태 전이(Transition) 프로세스 상태 전이란 하나의 작업이 컴퓨터 시스템에 입력되어 완료되기까지 프로세스의 상태가 준비 상태, 실행 상태 및 대기 상태 등으로 변하는 것을 의미 실행 상태..
개요 인터럽트에는 입.출력(I/O) 인터럽트, 외부(External) 인터럽트, 수퍼바이저 호출(SVC, Supervisor Call), 프로그램 검사(Program Check) 인터럽트, 기계 검사(Machine Check) 인터럽트, 재시작(Restart) 인터럽트 등이 있음 입.출력 인터럽트 해당 입.출력 하드웨어가 주어진 입.출력 동작을 완료하였거나 입.출력 도중 에러 등이 발생하였을 경우 CPU에 대하여 요청하는 인터럽트 불법 입.출력 명령이나 채널에게 지시하는 입.출력 시간, 입.출력 테스트, 입.출력 정지 등의 요인으로 발생하는 인터럽트 외부 인터럽트 CPU의 하드웨어 신호에 의해 발생하고, 입.출력 장치, 타이밍 장치, 전원 등 외부적인 요인으로 발생하는 프로그램과 비동기적인 인터럽트 슈퍼..
인터럽트의 구조 인터럽트 처리는 CPU가 명령어를 수행하고 있는 동안에 발생하는 시스템의 어떤 응급 상황에 대처하기 위한 일련의 조치 운영체제는 인터럽트가 발생하는 원인에 따라 적절한 인터럽트 처리 루틴에 의해 최소한의 조치를 취하고 , 인터럽트 서비스 루틴에 의해 발생한 응급 상황을 해결 인터럽트의 동작 과정 운영체제의 커널이 인터럽트 발생 신호를 감지하면 프로그램 카운터(PC; Program Counter)의 내용과 CPU에 의해 수행한 현재까지의 모든 프로그램의 상태 정보를 저장한 후에 인터럽트 서비스 루틴을 실행 인터럽트 처리가 완료되면 운영체제의 커널은 인터럽트가 발생하기 이전의 상태로 복귀하여 중단되었던 원래의 프로그램의 수행을 재개 인터럽트 발생시 CPU가 확인할 사항 프로그램 카운터의 내용..
개요 CPU에는 여러 장치가 연결되어 있어 동시에 인터럽트가 발생할 수 있으므로, 이와 같이 동시에 하나 이상의 인터럽트가 발생하였을 때 먼저 서비스할 장치의 결정이 인터럽트 우선순위 체제의 목적임 인터럽트 우선순위를 판별하는 방법은 소프트웨어적인 방법과 하드웨어적인 방법이 있음 소프트웨어에 의한 우선순위 소프트웨어적으로 우선순위가 높은 인터럽트를 알아내는 방식으로, '폴링(Polling) 방식' 이라 함 인터럽트 발생 시 CPU가 각 장치를 하나씩 검사하여 가장 우선순위가 높은 것을 알아내어 인터럽트를 처리하는 것으로, 하드웨어가 필요 없으므로 결제적임 인터럽트 요구가 많을 때에는 모두 조사하는데 상당한 시간이 소요될 수 있고, 우선순위의 변경이 소프트웨어적으로 간단하기 때문에 융통성을 부여할 수 있음..
정의 스래싱(Thrashing)이란 어떤 프로세스에 대해 계속적인 페이지 부재가 발생하여 프로세스의 처리 시간(프로그램 수행에 소요되는 시간)보다 페이지 교체 시간이 더 많아지는 현상으로, 시스템의 심각한 성능 저하를 초래하게 됨 원인 페이지 부재(Page Fault) 운영체제는 항상 프로세서의 이용률을 감시하고 있으며, 만약 이용률이 떨어지면 프로세서의 이용률을 높이기 위해 새로운 프로세스를 도입하여 다중 프로그래밍의 정도를 높이게 됨 새로운 프로세스가 수행 중인 프로세스로부터 페이지를 빼앗아 수행을 시작하려고 하면 더 많은 페이지 부재를 일으키게 되므로, 각 프로세스는 자신에게 필요한 프레임을 배당 받지 못하게 됨 부재율의 증가 프로세서가 요구하는 최소한의 수보다 페이지 프레임 수가 적을수록 페이지 ..