자원 관리(효율성)응용 프로그램에게 키보드 ,네트워크 카드, 사운드 카드, 메모리등의 자원을 할당해준다.또한, 적절한 시점에 자원을 회수하고, 적당한 순서로 자원을 배분한다.자원보호(안정성)악의적인 사용자에 대해서 컴퓨터의 자원을 보호한다.비정상적인 작업으로부터 컴퓨터
운영체제에서 프로세스는 하나의 작업 단위이다. 사용자가 더블 클릭하여 프로그램을 실행하면 그 프로그램은 프로세스가 된다.프로그램 : 하드디스크와 같은 저장장치에 보관되어 더블 클릭 시 실행된다.프로세스 : 프로그램이 메모리에 올라와 작업이 실행되면 프로세스가 된다.프로
오늘날의 운영체제들은 프로세스를 효율적으로 사용하고, 작업의 유연성을 얻기 위해 멀티스레드를 지원한다. 프로세스가 생성되면 CPU 스케줄러는 프로세스가 해야 할 일을 CPU에 전달하고, 실제 작업은 CPU가 수행한다. 이때 CPU 스케줄러가 CPU에 전달하는 일 하나가
CPU 스케줄러는 프로세스가 생성된 후 종료될 때까지 모든 상태 변화를 조정하는 일을 한다. 즉, 스케줄러는 하나의 관리자로 프로세스들의 여러 상황을 고려하여 cpu와 시스템 자원을 어떻게 배정할 지 결정하는 역할을 한다.가장 큰 틀에서 이루어지는 CPU 스케줄링으로
스케줄링 알고리즘은 비선점형 알고리즘(non-preemptive algorithm)과 선점형 알고리즘(preemptive algorithm)으로 나뉜다. 선점형 알고리즘은 시분할 시스템으로 어떤 프로세스가 CPU를 할당받아 실행 중이라도 운영체제가 CPU를 강제로 빼앗
지난 시간 알아본 비선점적 스케줄링 방식과는 달리, 선점적 스케줄링 방식은 CPU 자원을 사용 중인 프로세스에 인터럽트를 걸고, 다른 프로세스를 실행 시킬 수 있다. 그럼 어떤 프로세스를 올리고, 어떤 경우에 프로세스에 인터럽트를 걸지 알아보도록 하자라운드 로빈은 가슴
프로세스는 시스템 내에서 독립적으로 실행되기도 하고 데이터를 주고받으며 협업하기도 한다. 프로세스가 다른 프로세스와 데이터를 주고받는 프로세스 간 통신(IPC)에는 같은 컴퓨터 내에 있는 프로세스뿐만 아니라 네트워크로 연결된 다른 컴퓨터에 있는 프로세스와의 통신도 포함
한정된 자원을 가지고 프로세스가 공동으로 작업할 때 발생할 수 있는 문제가 있다.공유 자원(shared resource)는 여러 프로세스가 공동으로 이용하는 변수, 메모리, 파일 등을 말한다. 공유 자원은 공동으로 이용되기 때문에 누가 언제 어떻게 데이터를 읽거나 쓰거
critical section의 동기화를 성립하기위해서는 3가지 조건을 만족해야 한다고 했다.mutual exclusion(상호 배제)bounded waiting(한정된 대기)progress(진행의 융통성)이전의 bounded waiting(한정된 대기)의 코드와 비슷
2개 이상의 프로세스가 다른 프로세스의 작업이 끝나기만 가다리며 작업을 더 이상 진행하지 못하는 상태를 교착 상태(deadlock)라고 한다.컴퓨터 시스템에서 교착 상태는 시스템 자원, 공유 변수(또는 파일), 응용 프로그램 등을 사용할 때 발생할 수 있다.교착 상태는
이전 시간에 교착 상태에는 4가지 필요조건이 있다고 했다.상호 배제(Mutual exclusion)비선점(Non-preemption)점유와 대기(hold and wait)원형 대기(circular waiting)이들 중 하나라도 성립이 안되면 교착 상태가 걸리지 않는다
CPU는 메모리에 있는 내용을 가져오거나 작업 결과를 메모리에 저장하기 위해 메모리 주소 레지스터(MAR)을 사용한다. 메모리 주소 레지스터에 필요한 메모리 주소를 넣으면 데이터를 메모리에서 가져오거나 메모리에 데이터를 옮길 수 있다.폰노이만 구조(메모리 - CPU를
과거에는 메모리가 정말 작았다. 요즘은 메모리가 차고 넘치지만, 프로그램도 그만큼 무거워지고 용량이 커졌다. 가령 스타2라는 게임을 플레이한다고 하자. 스타2 프로그램이 총 20GB인데, 메모리가 8GB라면 메모리에 어떻게 프로그램을 옮기고 실행할 수 있을까??해답은
가상 메모리는 물리 메모리(실제 메모리)의 크기와 상관없이 메모리를 이용할 수 있도록 지원하는 기술이다. 프로그래머는 가상 메모리 덕분에 물리 메모리의 크기에 구애받지 않고 작업할 수 있는 커다란 공간을 얻게 되는 셈이다. 즉, 가상 메모리(virtual memory)
세그멘테이션 기법은 가변 분할 방식을 이용한 가상 메모리 관리 기법으로, 물리 메모리를 프로세스의 크기에 따라 가변적으로 나누어 사용한다. 세그먼테이션 기법에서 가상 주소를 물리 주소로 변환하는 방법과 매핑 테이블 관리 방법을 살펴보자위 그림은 세그먼테이션 기법에서 가
메모리 관리자는 프로세스가 필요로 하는 데이터를 언제 메모리로 가져올지 결정하는 '가져오기 정책', 가져온 프로세스를 메모리의 어느 위치에 올려놓을지 결정하는 '배치 정책', 메모리가 곽 찼을 때 메모리 내에 있는 어떤 프로세스를 내보낼지 결정하는 '재배치 정책'에 따
메모리가 꽉 찼을 때 어떤 페이지를 스왑 영역으로 내보낼지 결정하는 재배치 정책에 대해서 알아보자.프로세스가 요구한 페이지가 현재 메모리에 없으면 페이지 부재(page fault)가 발생한다. 페이지 부재가 발생하면 스왑 영역에서 페이지를 메모리로 가져오는데, 만약 메