본문 바로가기
728x90

쉽게 배우는 운영체제15

페이징 기법 페이징 기법의 주소 변환 과정 페이징 기법은 고정 분할 방식을 이용한 가상 메모리 관리 기법으로, 물리 주소 공간을 같은 크기로 나누어 사용한다. VA= -> PA=로 변환될 때 페이지 테이블을 사용하여 P는 F로 바꾸고 D는 변경 없이 그대로 쓴다. D를 변경하지 않은 이유는 페이지와 프레임의 크기를 똑같이 나누었기 때문이다. 16bit CPU의 주소 변환 예 한 페이지를 10B로 나누면 주소 변환 과정은 그리 어렵지 않다. 예를 들면 가상 주소 30번은 VA = 으로 간단하게 만들 수 있다. 그러나 컴퓨터는 2진법을 사용하므로 한 페이지의 크기는 2의 지수승으로 페이지의 크기가 다양할 경우 가상 주소를 로 변환하는 공식이다. P = 나눗셈(가상 주소/ 한 페이지의 크기)의 몫 D = 나눗셈(가상 주소.. 2023. 11. 14.
가상 메모리 컴퓨터마다 물리 메모리, 즉 실제 메모리의 크기가 다르다. 가상 메모리 virtual memory는 크기가 다른 물리 메모리에서 일관되게 프로세스를 실행할 수 있는 기술이다. 가상 메모리 시스템 현대 메모리 관리의 가장 큰 특징은 물리 메모리의 크기와 프로세스가 올라갈 때 메모리의 위치를 신경 쓰지 않고 프로그래밍하도록 지원한다는 것이다. 이것을 가능하게 하는 메모리 시스템을 가상 메모리라고 부른다. 가상 메모리의 크기와 주소 이론적으로 가상 메모리의 크기는 무한대다. 그러나 실제로 가상 메모리의 최대 크기는 컴퓨터 시스템이 가진 물리 메모리의 최대 크기로 한정되며, CPU에 따라 결정된다. 그런데 가상 메모리는 어떻게 실제 사용할 수 있는 물리 메모리의 크기를 넘어서 무한대로 메모리를 사용하게 할까? .. 2023. 11. 9.
프로세스 간 통신 프로세스 간 통신의 개념 하나의 프로세스에 속한 스레드끼리 데이터를 주고받는 것은 어렵지 않다. 그러나 프로세스 간 통신은 다르다. 서로 다른 프로세스는 사용하는 메모리 영역이 다르기 때문에 공유된 메모리를 통하여 통신하는 것이 쉽지 않다. 운영체제는 프로세스와 프로세스끼리 쉽게 데이터를 주고받을 수 있는 통신 방법을 제공하는데 이를 프로세스 간 통신 IPC:Inter Process Communication이라고 한다. 프로세스 간 통신의 종류 - 공유 메모리나 공유 파일을 이용한 통신 프로세스 간 통신 중 가장 원시적인 방식이다. 이 방식에서는 일정한 메모리 영역이나 파일을 공유하고 이를 통하여 데이터를 주고받는다. 데이터를 주고받는 방법을 프로세스끼리 알아서 결정해야 하기 때문에 원시적인 방식이라고 .. 2023. 10. 20.
스케줄링의 개요 레스토랑 관리자의 스케줄링 프로세스는 생성, 준비, 실행, 대기와 같은 여러 상태를 거치며 작업이 이루어진다는 것을 앞에서 살펴보았다. CPU스케줄러는 프로세스가 생성된 후 종료될 때까지 모든 상태 변화를 조정한다. CPU스케줄러의 작업을 레스토랑 관리자의 역할에 빗대어 이해해 보자 레스토랑 관리자는 예약과 관리와 좌석 관리를 한다. 손님이 많지 않을 때는 도착한 순서대로 테이블을 안내하고 주문을 받는다. 수용 인원보다 많은 손님이 몰리면 기다리는 손님에게 대기표를 주고 순서대로 자리를 배정한다. 그리고 레스토랑 관리자는 주문을 받는다. 손님이 주문한 요리와 샐러드의 드레싱 종류, 고기의 익힘 정도, 알레르기 여부등을 주문서에 적어 주방으로 보낸다. 레스토랑 관리자는 순서를 바꿀 수도 있다. 또한 관리자.. 2023. 10. 18.
컴퓨터 성능 향상 기술 시스템 작업 속도를 올리기 위해 개발된 기술 중 운영체제와 관련된 것을 살펴보고자 한다. 버퍼 buffer 버퍼는 두 장치 사이의 속도 차이를 완화하는 역할을 한다. 예를 들어 5개의 귤을 옮길 때 5번 왔다갔다 하는 것이 아니라 바구니에 한번에 5개를 담고 옮기면 더욱 효율적이다. 이 경우의 바구니는 버퍼로 비유된다. 이렇게 일정량의 데이터를 모아서 옮겨 속도 차이를 완화하는 장치가 버퍼다. 스풀 SPOOL 버퍼와 유사한 용어로 스풀이 있다. 스풀은 CPU와 입출력장치가 독립적으로 동작하도록 고완된 소프트웨어적인 버퍼로, 대표적인 예는 프린터와 사용되는 스풀러(spooler)다. 스풀러는 인쇄할 내용을 순차적으로 출력하는 소프트웨어로 출력 명령을 내린 프로그램과 독립적으로 작동한다. 우리는 스풀러를 사.. 2023. 10. 14.
CPU와 메모리 CPU의 기본 구성 요리: 산술논리 연산장치 작업 지시: 제어장치 재료 임시 보관: 레지스터 산술논리 연산장치 - 요리사가 재료를 삶거나 찌거나 볶듯이 CPU에서 데이터를 연산하는 장치가 산술논리 연산장치(ALU: Arithmetic and Logic Unit)다. 제어장치 - 요리사는 보조 요리사나 주방 보조에게 "도마 위의 재료를 가져와라"라는 등의 작업 지시를 한다. 이처럼 CPU에서 작업을 지시하는 부분을 제어장치라고 부른다. 레지스터 - 요리 중간에 재료 손질하기보다 필요한 재료를 미리 손질해 놓으면 요리하기가 편하다. 필요할 때마다 바로 사용할 수 있기 때문이다. 이처럼 작업에 필요한 데이터를 CPU내부에 보관하는 곳이 레지스터 reigster다. CPU의 명령어 처리 과정 두 수의 뎃셈 프로.. 2023. 10. 12.
728x90