본문 바로가기
728x90

CS37

CPU 스케줄링 알고리즘 CPU 스케줄링 알고리즘 CPU 스케줄러는 CPU 스케줄러 알고리즘에 따라 프로세스에서 해야 하는 일을 스레드 단위로 CPU로 할당한다. 프로그램이 실행 될때는 CPU 스케줄링 알고리즘이 어떤 프로그램에서 CPU 소유권을 줄 것인지 결정한다. 이 알고리즘은 CPU 이용률은 높게, 주어진 시간에 많은 일을 하게, 준비 큐(ready queue)에 있는 프로세스는 적게, 응답 시간은 짧게 설정하는 것을 목표로 한다. 비선점형 방식 비선점형 방식(non-preemptive)은 프로세스가 스스로 CPU 소유권을 포기 하는 방법이며, 강제로 프로세스를 중지 하지 않는다. 따라서 컨텍스트 스위칭으로 인한 부하가 적다. FCFS FCFS(First Come, First Served)는 가장 먼저 온 것을 가장 먼저 .. 2023. 1. 16.
공유자원 과 임계영역 & 교착상태 공유 자원 과 임계 영역 공유 자원 공유 자원(shared resource)은 시스템 안에서 각 프로세스, 스레드가 함께 접근 할 수 있는 모니터, 프린트, 메모리, 파일, 데이터 등의 자원이나 변수를 말한다. 이 공유 자원을 두개 이상의 프로세스가 동시에 읽거나 쓰는 상황을 경쟁 상태(race condition) 이라 한다. 동시에 접근을 시도할 때 접근의 타이밍 이나 순서 등이 결괏값에 영향을 줄 수 있다. 프로세스 A와 프로세스 B 가 동시에 접근 할때 타이밍 서로 꼬여 정상 결과값 300인데 200이 출력된다. 임계영역 공유 자원에 접근할 때 순서 등의 이유로 결과가 달라지는 영역을 임계 영역(critical section)이라 한다. 임계 영역을 해결하기 위한 방법은 뮤텍스, 세마포어, 모니터 .. 2023. 1. 15.
멀티 프로세싱 & 스레드&멀티 스레딩 멀티 프로세싱 멀티 프로세싱은 여러개의 '프로세스', 즉 멀티프로세스를 통해 동시에 두 가지 이상의 일을 수행할 수 있는 것을 말한다. 이를 통해 하나 이상의 일을 병렬로 처리 할 수 있으며 특정 프로세스의 메모리, 프로세스 중 일부에 문제가 발생되더라도 다른 프로세스를 이용해서 처리할 수 있으므로 신뢰성이 높은 강점 이있다. 웹브라우저 웹 브라우저는 멀티프로세스 구조를 가지고 있으며 다음과 같다. 브라우저 프로세스: 주소 표시줄, 북마크 막대, 뒤로 가기 버튼, 앞으로 가기 버튼 등을 담당하며 네트워크 요청이나 파일 접근 같은 권한을 담당한다. 렌더러 프로세스: 웹 사이트가 '보이는' 부분의 모든 것을 제어한다. 플러그인 프로세스: 웹 사이트에서 사용하는 플러그인을 제어한다. GPU 프로세스: GPU를.. 2023. 1. 14.
프로세스의 메모리 구조 와 PCB 프로세스의 메모리 구조 운영체제는 프로세스에 적절한 메모리를 할당하는데 다음 구조를 기반으로 할당한다. 위에서 부터 스택(stack), 힙(heap), 데이터 영역(BSS segment, Data segment), 코드 영역(code segment) 으로 나눠진다. 스택은 위 주소부터 할당되고 힙은 아래 주소부터 할당된다. 스택 스택에는 지역변수, 매개변수, 함수가 저장되고 컴파일 시에 크기가 결정되며 '동적'인 특징을 갖는다. 힙 힙은 동적 할당할 때 사용되며 런타임시 크기가 결정 된다. ex) 벡터 같은 동적 배열은 당연히 힙에 동적 할당된다. 힙은 '동적'인 특징을 가진다. 데이터 영역 데이터 영역은 전역변수, 정적변수가 저장되고, 정적인 특징을 갖는 프로그램이 종료 되면 사라지는 변수가 들어 있는.. 2023. 1. 13.
메모리 관리 메모리 관리 운영체제의 대표적인 할 일중 하나가 메모리 관리이다. 컴퓨터 내의 한정된 메모리를 극한으로 활용해야 하는 것이기 때문이다. 가상메모리 가상 메모리(virtual memory) 는 메모리 관리 기법의 하나로 컴퓨터가 실제로 이용 가능한 메모리 자원을 추상화하여 이를 사용하는 사용자들에게 매우 큰 메모리로 보이게 만드는 것을 말한다. 이때 가상적으로 주어진 주소를 가상 주소(logical address) 라고 하며, 실제 메모리상에 있는 주소를 실제 주소(physical address) 라고 한다. 가상 주소는 메모리관리장치(MMU)에 의해 실제 주소 로 변환되며, 이 덕분에 사용자는 실제 주소를 의식할 필요 없이 프로그램을 구축할 수있게 된다. 가상 메모리는 가상 주소와 실제 주소가 매핑되어 .. 2023. 1. 11.
메모리 계층 메모리 CPU는 그저 '메모리'에 올라와 있는 프로그램의 명령어들을 실행할 뿐이다. 메모리 계층과 메모리 관리 를 알아보자!! 메모리 계층 메모리 계층은 레지스터, 캐시, 메모리, 저장장치로 구성되어 있다. 레지스터: CPU 안에 있는 작은 메모리, 휘발성, 속도 가장 빠름, 기억 용량이 가장 적다. 캐시 : L1, L2 캐시를 지칭한다. 휘발성, 속도 빠름, 기억 용량이 적다. 참고 L3 캐시도 존재 한다. 주기억장치 :RAM을 가르킨다. 휘발성, 속도 보통, 기억 용량이 보통이다. 보조기억장치 : HDD, SDD를 일컫으며 휘발성, 속도 낮음, 기억 용량이 많다. 램은 하드디스크로부터 일정량의 데이터를 복사해서 임시 저장하고 이를 필요 시마다 CPU에 빠르게 전달하는 역할을 한다. 계층 위로 올라갈수.. 2023. 1. 10.
728x90