legacy
-
[운영체제] 캐시 메모리 (Cache Memory)legacy/Operating System 2024. 5. 11. 23:06
1. 캐시 메모리(Cache Memory)캐시 메모리는 CPU와 주 기억장치(메인 메모리, RAM) 사이의 고속 데이터 저장소로 사용된다. 데이터에 빠르게 접근할 수 있도록하여 시스템의 전반적인 성능을 향상시킨다. 캐시 메모리는 CPU가 주 기억장치에 접근하는 것보다 빠른 속도로 데이터에 접근할 수 있도록 해준다. CPU는 먼저 캐시에서 데이터를 찾고 데이터가 없는경우 주 기억장치에서 데이터를 가져온다. 자주 사용되는 데이터나 명령어를 캐시 메모리에 저장하면 CPU는 캐시 메모리에 저장된 정보를 재사용할 수 있다. 이는 반복적인 메모리 접근을 줄인다. 2. 캐시의 지역성(Cache Locality)CPU는 데이터를 가져오기 위해 캐시 메모리에 먼저 접근하고 데이터가 존재하지 않는다면 주 기억장치에 접근..
-
[운영체제] Context Swtichinglegacy/Operating System 2024. 5. 10. 11:10
Context Switching이란?멀티 프로세스 또는 멀티 스레드 환경에서 여러 프로세스 또는 스레드가 CPU를 공유하기 때문에 컨텍스트 스위칭이 발생한다.진행 중이던 작업에서 다른 작업을 수행해야할 때, 현재 프로세스 또는 스레드는 지금까지 진행한 작업의 상태를 저장한다. 그리고 컨텍스트 스위칭을 통해 다른 작업을 수행하는 프로세스의 이전 작업 내용을 복원한다. Context란?Conext란 CPU가 해당 프로세스를 실행하기 위한 해당 프로세스의 정보들이다.각 프로세스는 독립된 메모리 공간에 PCB(Process Control Block)을 저장하며, 프로세스의 정보인 Context가 저장된다.PCB는 다음 정보를 저장한다.프로세스 상태: 생성, 준비, 수행, 대기, 중지PC(프로그램 카운터): 프로..
-
[운영체제] 뮤텍스 락과 세마포어legacy/Operating System 2024. 5. 10. 10:28
새로운 게시물이 작성되었습니다 => https://server-technology.tistory.com/479현재 글과 새로운 게시물 둘 다 읽어보시면 도움이 될 것이라 생각합니다. 뮤텍스락: 공유 자원 1개에 대하여 오직 하나의 스레드만이 접근할 수 있도록 하는 상호 배제(Mutual Exclusion) 기법이다. 세마포어: 공유 자원 n개에 대하여 여러 스레드가 동시에 접근할 수 있도록 n개의 자원을 제어한다. 뮤렉스락(Mutex Lock)1개의 공유 자원에 1개의 스레드 또는 프로세스만 접근할 수 있도록 제어한다. 이를 상호 배제(Mutual Exclusion)라고 한다. 공유 자원을 사용하고 있는 스레드(또는 프로세스)는 Key를 가지고 있다. Key를 가지고 있는 스레드는 공유 자원을 사용하고 ..
-
[운영체제] Thread Safelegacy/Operating System 2024. 5. 8. 12:52
멀티 스레딩 환경에서 데이터의 일관성과 정확성을 보장하기 위한 개념이다. 여러 스레드가 동시에 같은 데이터에 접근할 때 발생할 수 있는 문제를 방지하기 위한 다양한 기법이 존재한다.Thread Safe멀티 스레드 프로그래밍 환경에서 함수나 변수, 객체에 여러 스레드가 동시에 접근이 발생해도 프로그램에 문제가 발생하지 않는 것을 의미한다.즉, 하나의 스레드로부터 실행 중인 함수가 있을 때, 다른 스레드가 해당 함수를 사용하더라도 각 스레드에서 호출한 함수의 결과가 올바르게 출력되는 것을 의미한다. Thread Safe를 위한 4가지 방법Mutual Exclustion (상호 배제)Atomic Operation (원자 연산)Thread-Local Stroage (스레드 지역 저장소)Re-Entrancy (재..
-
[운영체제] 멀티 프로세스 vs 멀티 스레드legacy/Operating System 2024. 5. 8. 12:47
멀티 프로세스여러 개의 독립적인 프로세스가 동시에 실행되는 것을 말한다.프로세스는 독립적인 메모리 공간을 할당받기 때문에 각 프로세스는 서로 다른 메모리 영역에서 작업을 한다.이는 하나의 프로세스에서 발생하는 문제가 다른 프로세스에 영향을 미치지 않음을 의미한다.장점안정성: 하나의 프로세스에서 발생한 오류가 다른 프로세스에 영향을 미치지 않는다.단점Context-Swtiching 비용: 프로세스 간에 컨텍스트 스위칭은 많은 비용을 발생시킨다. 프로세스는 독립된 메모리 영역이기 때문에 주소 공간의 공유가 잦을 경우 오버헤드 발생에 따른 성능 저하가 발생한다.멀티 스레드하나의 프로세스가 여러 작업을 동시에 수행할 수 있도록 한다.하나의 프로세스에는 여러 개의 스레드가 존재하며, 프로세스가 할당된 메모리 영역..
-
[운영체제] 프로세스와 스레드 차이legacy/Operating System 2024. 5. 8. 12:34
프로세스: 운영체제로부터 자원을 할당받은 작업의 단위 스레드: 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위프로그램이란?프로그램이란 파일장치에 저장되어 있지만 메모리에는 저장되어 있지 않은 상태이다.즉, 프로그램이 실행되고 있지 않은 상태를 의미한다. 모든 프로그램은 실행되기 위해서는 메모리에 할당되어야 한다. 프로그램을 실행하게 되면 메모리에 공간을 할당받는다. 이 상태의 프로그램을 프로세스라고 한다.프로그램은 단순히 코드로 구성된 파일이며, 메모리에 공간을 할당받은 프로그램을 프로세스라고 한다.스레드 개념이 생긴 이유프로그램의 실행부터 끝까지 하나의 프로세스가 처리한다.그러나 점차 프로그램이 복잡해짐에 따라 프로세스 1개로 처리하는 것이란 실질적으로 불가능하게 되었다. 그렇다고 해서 다른 프로..