CS
Computer Science
-
TL;DR 가상 메모리란? 물리 메모리의 크기와 상관없이 프로세스에 커다란 메모리 공간을 제공하는 기술 요구 페이징이란? 프로세스가 필요로 하는 데이터를 프로세스가 요청할 때 메모리에 적재하는 방법 페이지 폴트란? 프로세스가 요구한 페이지가 현재 메모리에 없는 상황 페이지 폴트 알고리즘이란? 페이지 폴트(Page Fault)가 발생할 시 어떤 프레임을 선택하여 교체할지 결정하는 방법 가상 메모리 물리 메모리의 크기와 상관없이 프로세스에 커다란 메모리 공간을 제공하는 기술이다. 🔺 가상 메모리의 필요성 프로세스가 실행되는 코드 전체를 물리 메모리에 존재시킨다면, 메모리 용량보다 큰 프로그램은 실행될 수 없다. 또한 여러 프로그램이 동시에 메모리에 올라갈 경우, 용량 문제나 성능 이슈가 발생한다. 하지만 실..
(6) 가상 메모리 (요구 페이징/ 페이지 교체 알고리즘)TL;DR 가상 메모리란? 물리 메모리의 크기와 상관없이 프로세스에 커다란 메모리 공간을 제공하는 기술 요구 페이징이란? 프로세스가 필요로 하는 데이터를 프로세스가 요청할 때 메모리에 적재하는 방법 페이지 폴트란? 프로세스가 요구한 페이지가 현재 메모리에 없는 상황 페이지 폴트 알고리즘이란? 페이지 폴트(Page Fault)가 발생할 시 어떤 프레임을 선택하여 교체할지 결정하는 방법 가상 메모리 물리 메모리의 크기와 상관없이 프로세스에 커다란 메모리 공간을 제공하는 기술이다. 🔺 가상 메모리의 필요성 프로세스가 실행되는 코드 전체를 물리 메모리에 존재시킨다면, 메모리 용량보다 큰 프로그램은 실행될 수 없다. 또한 여러 프로그램이 동시에 메모리에 올라갈 경우, 용량 문제나 성능 이슈가 발생한다. 하지만 실..
2023.05.04 -
들어가기 전에 메모리 용량이 증가함에 따라 프로그램의 크기 또한 계속 증가하고 있기 때문에 메모리는 언제나 부족하다. 실행중인 모든 프로세스를 메모리 위에 올릴 수 없기 때문에 제한된 물리 메모리의 효율적인 사용이 필요하다. 스와핑 (Swapping) 주기억장치에 적재한 하나의 프로세스와 보조기억장치에 적재한 다른 프로세스의 메모리를 교체하는 기법. 스와핑(Swapping)의 단위는 프로세스 메모리는 크기가 작기 때문에, 현재 모든 프로세스가 user space 메모리를 다 차지하고 있는데 새로운 프로세스를 실행하면, 기존의 프로세스 중에 현재 실행중이지 않은 프로세스를 임시로 디스크에 보냈다가 다시 메모리에 로드해야 하는 상황이 생긴다. CPU에서 실행중이지 않는 프로세스를 저장장치의 Swap 영역으로..
(5) 메모리 관리 전략 (페이징, 세그멘테이션)들어가기 전에 메모리 용량이 증가함에 따라 프로그램의 크기 또한 계속 증가하고 있기 때문에 메모리는 언제나 부족하다. 실행중인 모든 프로세스를 메모리 위에 올릴 수 없기 때문에 제한된 물리 메모리의 효율적인 사용이 필요하다. 스와핑 (Swapping) 주기억장치에 적재한 하나의 프로세스와 보조기억장치에 적재한 다른 프로세스의 메모리를 교체하는 기법. 스와핑(Swapping)의 단위는 프로세스 메모리는 크기가 작기 때문에, 현재 모든 프로세스가 user space 메모리를 다 차지하고 있는데 새로운 프로세스를 실행하면, 기존의 프로세스 중에 현재 실행중이지 않은 프로세스를 임시로 디스크에 보냈다가 다시 메모리에 로드해야 하는 상황이 생긴다. CPU에서 실행중이지 않는 프로세스를 저장장치의 Swap 영역으로..
2023.05.04 -
TL;DR Race condition이란? 2개 이상의 프로세스(스레드)들이 하나의 자원(공유 자원)에 동시에 접근하려 경쟁하는 상태 Critical section(임계구역)이란? 공유 데이터에 접근하려는 코드를 의미한다. 뮤텍스란? 하나의 스레드만이 공유자원에 접근할 수 있도록하여 경쟁 상황을 방지하는 기법 세마포어란? 임계 구역에 여러 스레드가 들어갈 수 있고, counter를 두어서 허용 가능한 스레드를 제한해 경쟁 상황을 방지하는 기법 Deadlock 이란? 둘 이상의 프로세스가 서로가 가진 자원을 필요로 하며 무한 대기에 빠지는 상황이다. 동기화 문제 둘 이상의 프로세스나 스레드가 공유 데이터에 접근하는 상황, 즉 경쟁 상태를 해결하는 방법이다. Concurrency Control (병행 제어)..
(4) Deadlock / 세마포어 & 뮤텍스TL;DR Race condition이란? 2개 이상의 프로세스(스레드)들이 하나의 자원(공유 자원)에 동시에 접근하려 경쟁하는 상태 Critical section(임계구역)이란? 공유 데이터에 접근하려는 코드를 의미한다. 뮤텍스란? 하나의 스레드만이 공유자원에 접근할 수 있도록하여 경쟁 상황을 방지하는 기법 세마포어란? 임계 구역에 여러 스레드가 들어갈 수 있고, counter를 두어서 허용 가능한 스레드를 제한해 경쟁 상황을 방지하는 기법 Deadlock 이란? 둘 이상의 프로세스가 서로가 가진 자원을 필요로 하며 무한 대기에 빠지는 상황이다. 동기화 문제 둘 이상의 프로세스나 스레드가 공유 데이터에 접근하는 상황, 즉 경쟁 상태를 해결하는 방법이다. Concurrency Control (병행 제어)..
2023.05.04 -
들어가기 전에 분산 시스템은 PC가 보급되고 인터넷이 활성화되면서 개념이 생겨났다. 병렬 처리 (Parallel Processing) : 하나 이상의 연산을 동시에 수행해 연산 속도를 증가시키는 방법 분산 시스템 : 여러 개의 컴퓨터가 동일한 태스크를 처리하기 위해 네트워크 상에서 서로 통신하며 협력하는 것 예) 거대 웹사이트 저장소, P2P 파일 공유 등 병렬처리 시스템은 프로세서를 늘려서 여러 일을 동시에 처리 할 수 있게 해주는 시스템 분산처리 시스템은 하나의 컴퓨터 시스템이 처리 또는 제어하고 있던 기능을 여러 개의 컴퓨터 시스템에 분산하여 처리하는 것. 분산처리는 “하나의 일을 동시에 여럿이서” 처리하는 것 병렬 처리 시스템 ( 강결합 시스템) 병렬처리 시스템은 컴퓨터를 병렬로 연결하거나, CP..
(3) 분산 시스템 / 멀티 프로세스 vs 멀티 스레드들어가기 전에 분산 시스템은 PC가 보급되고 인터넷이 활성화되면서 개념이 생겨났다. 병렬 처리 (Parallel Processing) : 하나 이상의 연산을 동시에 수행해 연산 속도를 증가시키는 방법 분산 시스템 : 여러 개의 컴퓨터가 동일한 태스크를 처리하기 위해 네트워크 상에서 서로 통신하며 협력하는 것 예) 거대 웹사이트 저장소, P2P 파일 공유 등 병렬처리 시스템은 프로세서를 늘려서 여러 일을 동시에 처리 할 수 있게 해주는 시스템 분산처리 시스템은 하나의 컴퓨터 시스템이 처리 또는 제어하고 있던 기능을 여러 개의 컴퓨터 시스템에 분산하여 처리하는 것. 분산처리는 “하나의 일을 동시에 여럿이서” 처리하는 것 병렬 처리 시스템 ( 강결합 시스템) 병렬처리 시스템은 컴퓨터를 병렬로 연결하거나, CP..
2023.05.04 -
TL;DR 프로세스는 실행 중인 프로그램으로 운영체제로부터 자원을 할당받으며 각 프로세스끼리 독립적이다. 스레드는 프로세스 내에서 실행되는 흐름의 단위로 프로세스가 할당받은 자원 내에서 Stack 영역만 따로 갖고 나머지는 공유 자원으로 사용한다. Scheduler란? CPU를 효율적으로 사용하기 위한 방법으로, 어떤 프로세스에게 CPU를 줄 지 고른다 들어가기 전에 운영체제란 HW를 효율적으로 관리하는 소프트웨어로, 시스템 입장에서는 자원 할당자다. 컴퓨터 발전 과정에서 여러 개의 프로그램을 메모리에 올려둘 수 있게 됐고 (bigger and cheaper memory 발전) User interactive 환경이 대두되면서(모니터/키보드 등) I/O bounded job 이 많아졌다. CPU를 더욱 효..
(2) 프로세스 & 스레드 / 스케줄러TL;DR 프로세스는 실행 중인 프로그램으로 운영체제로부터 자원을 할당받으며 각 프로세스끼리 독립적이다. 스레드는 프로세스 내에서 실행되는 흐름의 단위로 프로세스가 할당받은 자원 내에서 Stack 영역만 따로 갖고 나머지는 공유 자원으로 사용한다. Scheduler란? CPU를 효율적으로 사용하기 위한 방법으로, 어떤 프로세스에게 CPU를 줄 지 고른다 들어가기 전에 운영체제란 HW를 효율적으로 관리하는 소프트웨어로, 시스템 입장에서는 자원 할당자다. 컴퓨터 발전 과정에서 여러 개의 프로그램을 메모리에 올려둘 수 있게 됐고 (bigger and cheaper memory 발전) User interactive 환경이 대두되면서(모니터/키보드 등) I/O bounded job 이 많아졌다. CPU를 더욱 효..
2023.05.04 -
유닉스는 1969년 Bell 연구소에서 개발된 운영체제로 현대 운영체제의 대부분이 UNIX에 뿌리를 두고 있다. (윈도우 제외 거의 모든 OS의 조상님) ✅ 유닉스 운영체제의 특징 고급 언어인 C언어로 쓰여있어 이식성이 높다. 👆 이식성이란? 한번 만들어진 프로그램을 다른 CPU를 가지는 하드웨어로 쉽게 이식할 수 있다는 뜻 대다수의 컴퓨터가 C 컴파일러를 가지고 있기 때문에 C언어로 쓰여 있으면 이식성이 높다. 시분할 시스템 (Time Sharing System)을 위해 설계된 대화식 운영체제이다. 👆 시분할 시스템이란? 현재 대부분의 운영체제가 사용하고 있는 방식으로 여러 작업을 수행할 때 CPU를 일정한 시간 단위로 분할해 사용한다. 일괄처리에 비해 짧은 응답 시간을 가져 Interative 한 방..
(1) 유닉스 운영체제유닉스는 1969년 Bell 연구소에서 개발된 운영체제로 현대 운영체제의 대부분이 UNIX에 뿌리를 두고 있다. (윈도우 제외 거의 모든 OS의 조상님) ✅ 유닉스 운영체제의 특징 고급 언어인 C언어로 쓰여있어 이식성이 높다. 👆 이식성이란? 한번 만들어진 프로그램을 다른 CPU를 가지는 하드웨어로 쉽게 이식할 수 있다는 뜻 대다수의 컴퓨터가 C 컴파일러를 가지고 있기 때문에 C언어로 쓰여 있으면 이식성이 높다. 시분할 시스템 (Time Sharing System)을 위해 설계된 대화식 운영체제이다. 👆 시분할 시스템이란? 현재 대부분의 운영체제가 사용하고 있는 방식으로 여러 작업을 수행할 때 CPU를 일정한 시간 단위로 분할해 사용한다. 일괄처리에 비해 짧은 응답 시간을 가져 Interative 한 방..
2023.05.04