CPU라는 하드웨어 자원을 여러 프로세스들이 효율적으로 사용하기 위해, 스케줄링 과정이 필요하다. 다음에 실행할 프로세스를 선택하는 알고리즘을 통해 스케줄링을 하게 된다. 상황에 따라 효율적인 CPU 스케줄링이 오히려 성능 감소를 야기 할 수 도 있다. Scheduling Critria CPU 스케줄링의 효율성을 판단하는 기준은 다음과 같다. CPU Utilizaiton Throughput Turnarround Time Wating Time Response Time Preemptive VS Non-Preemptive 다양한 CPU 스케줄링을 알기에 앞서 선점(Preemptive), 비선점(Non-Preemptive) 방식에 대한 이해가 필요하다. Preemptive 선점은 말그대로 특정 프로세스가 CPU..
프로세스 메모리에 할당되어 실행중에 있는 프로그램 (program in execution)을 말한다. 프로그램은 일반적으로 저장장치에 저장되어 아무일도 하지 않는 상태이다. 프로세스를 job, task 등으로 말하기도 한다. 프로세스 상태 New : 저장장치로 부터 프로그램을 메모리에 할당한 경우이다. Ready : New 상태에서 초기화 과정 후 실행할 준비가 완료되거나, Running 상태에서 인터럽트가 발생한 경우이다. Running : 스케줄러를 통해 다음에 실행될 프로세스로 선택된 경우 Running 상태로 바뀌어 작업을 수행한다. Wating : I/O와 이벤트를 처리하는 것은 지연시간이 크므로 이와 같은 경우 Waiting 상태 후 다시 Ready로 간다. Terminated : 프로세스를 ..
운영체제를 이용하는 모든 사용자가 별도의 권한을 확인하지 않고, 파일을 저장할 수 있다면 어떻게 될까? 악의적인 프로그램을 실행할 경우 타인의 저장공간을 침범하여 데이터를 손실시킬 수 있는 상황이 발생할 수 도 있다. 또한, 운영체제를 종료하는 명령어와 같은 실행시 치명적인 명령어를 사용할 경우도 비슷한 상황이 발생한다. Dual Mode 운영체제는 특권 명령(Privileged Instructions)을 지정하고 일반 사용자는 사용하지 못하게 막았다. Applications에서 특권 명령 사용이 필요할 경우 인터럽트를 발생시켜 kernel mode에 진입 후, 운영체제를 통해 처리하고자 하는 작업을 처리한다. (특권 명령이 사용 가능한 kernel mode와 반대인 user mode는 CPU 레지스터에..
운영체제란? 운영체제는 컴퓨터의 자원들을 사용할 수 있는 환경을 제공한다. 다양한 하드웨어를 사용할 수 있도록 편의성을 제공한다. 다수의 사용자가 사용하거나, 여러 개의 프로그램이 실행될 경우 적절히 실행되도록 관리한다. 즉, 컴퓨터의 하드웨어의 관리와 사용자가 적시적재에 사용할 수 있는 환경을 제공한다. 부팅(Booting) 컴퓨터 부팅 과정은 크게 2가지로 나뉘게 된다. 첫번째는 POST(Power-On-Self-Test)를 통해 컴퓨터의 각 장치에 대한 점검을 진행하는 과정이다. 두번째는 부트로더(Boot loader)를 통해 저장장치 내에 운영체제와 관련된 데이터를 메모리에 적재하는 과정이다. 위의 과정을 마치게 되면 정상적으로 운영체제를 사용할 수 있다. 운영체제의 계층적 위치 운영체제의 계층적..