대학/운영체제
-
가상 메모리 (기초)대학/운영체제 2023. 6. 4. 23:13
물리 메모리의 크기와 상관없이 프로세스에 거대한 메모리 공간을 제공하는 기술로, 가상 메모리를 이용하면 프로세스는 운영체제가 어디에 있는지, 물리 메모리의 크기가 어느 정도인지 신경 쓰지 않고 메모리를 마음대로 사용할 수 있게 된다. 가상 메모리의 크기는 실제 메모리의 크기와 스왑 영역의 크기를 합친 만큼이 되는데, 가상 메모리 공간에 접근하기 위해서는 동적 주소 변환이 필요하다. 즉, 가상 주소를 실제 주소로 변환해야 데이터를 물리 메모리에 저장할 수 있는 것이다. 가상 메모리의 메모리 분할 방식은 물리 메모리에서 가변 분할 방식을 채택한 것 처럼 세그먼테이션 방식을 채택하는 경우와, 고정 분할 방식을 채택한 것 처럼 페이징을 채택하는 경우가 있다. 버디 시스템처럼 두 단점을 보완한 세그먼테이션-페이징..
-
물리 메모리 관리대학/운영체제 2023. 6. 4. 22:56
메모리는 폰노이만 구조의 컴퓨터에서의 유일한 작업공간이다. 따라서 모든 프로그램은 메모리에 올라와야 작업을 수행할 수 있다. 오늘날의 시분할 시스템에서 모든 응용 프로그램이 메모리에 올라와 실행되어야 하는데, 물리적인 메모리공간의 한계가 있기 때문에 이를 관리하는 것이 매우 어려워졌다. MMU - Memory Manage Unit 메모리 관리를 담당하는 하드웨어 유닛으로 아래와 같은 작업을 한다. 가져오기 프로세스와 데이터를 메모리로 가져옴. 프로세스가 필요로 하는 데이터를 언제 메모리로 가져올 지 결정하는 정책이 있다. 배치 가져온 프로세스와 데이터를 메모리의 어떤 부분에 올릴지 정책에 따라 결정. 재배치 꽉 차 있는 메모리에 새로운 프로세스를 가져오기 위해 정책에 따라 프로세스를 내보냄 메모리 주소 ..
-
교착 상태 (Deadlock)대학/운영체제 2023. 6. 4. 21:58
2개 이상의 프로세스가 다른 프로세스의 작업이 끝나기만 기다리며 작업을 진행하지 못하는 상황을 의미한다. Deadlock 필요조건 아래의 4가지 조건이 모두 충족되는 경우 교착 상태가 발생한다. 상호 배제 한 프로세스가 사용하는 자원은 다른 프로세스와 공유할 수 없는 배타적인 자원이어야 함. 비선점 한 프로세스가 사용 중인 자원은 중간에 다른 프로세스가 빼앗을 수 없는 비선점 자원이어야 한다. 점유와 대기 프로세스가 어떤 자원을 할당받은 상태에서 다른 자원을 기다리는 상태여야 함. 원형 대기 점유와 대기를 하는 프로세스 간의 관계가 원을 이루어야 함. 즉, 위 4조건 중 하나라도 충족되지 않으면 교착 상태는 발생하지 않는다. 교착 상태 예방 - 상호 배제 예방 시스템 내에 독점적으로 사용할 수 있는 자원..
-
프로세스 동기화대학/운영체제 2023. 6. 4. 21:32
통신 프로세스 간 통신의 종류는 다음과 같다 프로세스 내부 데이터 통신 2개 이상의 스레드가 존재하는 경우 스레드 간의 통신을 의미한다. 전역 변수나 파일을 이용하여 데이터를 주고 받는다. 프로세스 간 데이터 통신 공용 파일 또는 운영체제가 제공하는 파이프를 사용하여 데이터를 주고 받는다. 네트워크를 이용한 데이터 통신 컴퓨터 간의 통신을 의미한다. 소켓을 이용하여 데이터를 주고 받는다. 통신 방향에 따른 분류는 다음과 같다 양방향 통신 데이터를 동시에 양쪽 방향으로 전송할 수 있는 구조. 소켓 통신이 이에 해당. 단양방향 통신 데이터를 양쪽 방향으로 전송할 수 있지만, 동시에 양쪽 방향으로 전송은 불가능한 구조. 무전기가 이에 해당. 단방향 통신 데이터를 한 쪽 방향으로만 전송할 수 있는 구조. 프로세..
-
CPU 스케줄링대학/운영체제 2023. 4. 16. 23:50
스케줄링의 개요 스케줄링은 크게 3단계로 나뉜다. 시스템의 부하를 고려하여 작업을 시작할지 말지, 즉, 시스템 내의 전체 작접 수를 조절하는 고수준 스케줄링 중지와 활성화로 활성화된 프로세스의 수를 조절하여 과부화를 막는 중간 수준 스케줄링 어떤 프로세스를 CPU에 할당하고 대기 상태로 보낼지 결정하는, 즉, 실제 스케줄링 작업을 수행하는 저수준 스케줄링으로 나뉜다. 이런 스케줄링의 목적은 다음과 같다. 공평성 모든 프로세스가 공평하게 CPU를 할당받도록 하기 위함 효율성 시스템 자원이 유휴시간 없이 사용되도록 하기 위함 안정성 우선순위를 사용하여 중요 프로세스가 먼저 작동하게 하거나, 시스템 자원을 점유하거나 파괴하려는 프로세스로 부터 자원을 보호하기 위함 확장성 프로세스가 증가해도 시스템이 안정적으로..
-
프로세스와 스레드대학/운영체제 2023. 4. 16. 22:49
프로세스의 개요 프로그램이 실행을 위해 메모리에 올라온 동적인 상태를 프로세스라 한다. 이 때 프로그램은 프로세스 제어 블록(PCB)를 부여받아 운영체제에 의해 관리된다. 프로세스는 5가지의 상태를 가질 수 있다. 생성 상태 프로세스가 메모리에 올라와 실행 준비를 마친(PCB를 얻은) 상태 준비 상태 생성된 프로세스가 CPU를 얻을 때까지 대기하는 상태 실행 상태 CPU를 얻어 실제로 작업을 수행하는 상태 대기 상태 입출력 요청이 들어온 프로세스가 입출력이 완료될 때 까지 대기하는 상태 완료 상태 작업을 완료하여 PCB가 사라진 상태 dispatch: 준비 > 실행 timeout(interrupt): 실행 > 준비 block: 실행 > 대기 exit: 실행 > 완료 wakeup: 대기 > 준비 메모리가 ..
-
컴퓨터의 구조와 성능 향상대학/운영체제 2023. 4. 16. 21:20
컴퓨터의 기본 구성 CPU, 메모리와 같은 필수장치와 키보드 같은 입력장치, 그래픽카드 같은 출력장치, 디스크 같은 저장장치 등 주변장치로 구성되어 있다. 현대의 컴퓨터는 폰 노이만 구조를 따르는데, 폰 노이만 구조는 CPU, 메모리, 입출력장치, 저장장치 등은 버스(Bus)로 연결되어 있고, 모든 프로그램은 메모리에 올라와야 실행될 수 있는 구조를 말한다. 여기서 메모리와 주변장치를 연결하는 버스를 Front-Side Bus 라 하고, CPU 내부의 장치를 연결하는 버스를 Back-Side Bus 라 한다. 일반적으로 BSB의 속도가 FSB보다 훨씬 빠른데, CPU는 BSB의 속도로 동작하고, 메모리는 FSB의 속도로 동작하기 때문에 지연이 발생하게 된다. 이 문제는 cache를 통해 해결한다. FSB..
-
운영체제와 컴퓨터대학/운영체제 2023. 4. 16. 20:18
운영체제의 개요 운영체제는 응용 프로그램, 사용자에게 컴퓨터 자원을 사용할 수 있는 인터페이스를 제공하고, 그 결과를 돌려주는 시스템 소프트웨어 이다. 이 과정에서 사용자가 직접 컴퓨터 자원에 접근하는 것을 막아 자원을 보호한다. 초기 컴퓨터는 논리적으로 순차 처리하는 일괄 작업 시스템으로 시작했지만, 이후에 주변기기들이 생겨나면서 입력값에 따라 작업의 흐름이 바뀌는 대화형 시스템을 넘어 여러 작업을 시분할 하여 동시에 처리하는 것 처럼 하는 시분할 시스템까지 발전하게 되었다. (운영체제는 프로세스를 관리하고, 실제 작업의 처리단위는 스레드로 CPU가 시분할로 처리한다) 인터넷이 보급됨에 따라 분산 시스템이 생겨났고, 이는 곧 서버-클라이언트 시스템으로 발전했다. 서버의 부담을 줄이고자 p2p(peer)..