CS11 [운영체제] 캐시 일관성과 MESI 프로토콜 캐시 일관성이 필요한 이유멀티코어 시스템에서는 각 CPU 코어마다 자체 캐시(L1, L2 등)을 갖고 있습니다.이 캐시들은 공유 메모리(RAM)의 일부 데이터를 복사해서 로컬하게 저장하고 사용합니다. 그런데 여러 CPU가 동일한 메모리 주소를 읽고 쓰게 되면 문제가 발생합니다.int x = 0; // 공유 변수// (CPU1) x = 1; // (CPU2) printf("%d\n",x); // 0이 출력될 수 있습니다. 위 코드처럼 CPU1이 x = 1로 값을 바꿨지만, CPU2는 여전히 이전 값 0을 자신의 캐시에서 읽어올 수 있습니다. 즉, CPU 간 캐시가 일관되지 않은 상태가 되는 거죠. 이러한 문제를 해결하기 위해 캐시 일관성 프로토콜이 필요합니다. MESI 프로토콜현대 CPU는 대부분 MES.. 2025. 4. 25. [운영체제] 락 TAS vs CAS 병행성 문제와 락의 필요성병행 프로그래밍에서는 여러 명령어를 동시에 실행하고 싶지만, 단일 프로세서의 인터럽트나 멀티 스레드 환경에서도 자원 공유로 인해 의도한 대로 병행 실행이 어려운 경우가 발생합니다. 이를 해결하기 위해서 락을 사용해 임계 영역을 보호하고, 해당 영역 내에서는 명령어들이 원자적으로 실행되도록 합니다.즉, 개ㅁ발자는 동시 접근이 발생할 수 있는 코드 영역을 락을 감싸서, 하나의 스레드만 해당 영역을 실행할 수 있게 해야 합니다. 임계 영역 예제 코드간단한 임계 영역의 예제를 통해서 락을 적용하는 과정을 확인해보겠습니다.임계 영역의 코드는 다음과 같습니다.(코드는 C++을 기준으로 작성합니다.)balance = balance + 1; 락을 사용하기 위해서 락으로 감싼 임계 영역의 코드는.. 2025. 4. 25. [OS] 메모리 관리 전략 OS에서 메모리 관리는 어떻게 할까? 이번 글은 OS의 메모리 관리 전략에 대해 정리한 글입니다.아래의 내용은 "기술 면접 대비 CS 전공 핵심 요약집"의 내용을 공부하고 정리한 내용입니다. 논리 메모리와 물리 메모리CPU가 프로세스를 처리할 때, 프로세스가 보는 메모리 영역은 논리 메모리 영역 또는 가상 메모리 영역이라고 합니다.실제로 사용되는 메모리 영역(RAM)은 물리 메모리 영역이라고 합니다.CPU가 프로세스를 실행해 보는 주소 값을 논리 주소 또는 가상 주소라고 하고, 실제 메모리에서 사용되는 주소는 물리 주소라고 합니다. CPU가 프로세스를 실행할 때 사용하는 주소 값과 실제 주소값이 다르기 때문에, 하드웨어 장치인 메모리 관리 장치가 논리 주소를 물리 주소로 변환해주어야 합니다. 메모리 관리.. 2025. 3. 9. [네트워크] TCP 제어 방법 "TCP가 신뢰성을 보장하기 위해 어떻게 할까요?" 이번 글은 TCP 제어 방법에 대해 정리한 글입니다.아래의 내용은 "기술 면접 대비 CS 전공 핵심 요약집"의 내용을 공부하고 정리한 내용입니다. TCP는 신뢰성을 보장하기 위해 어떻게 할까요? TCP 제어 방법TCP는 신뢰성을 보장하기 위해 흐름 제어, 혼잡 제어, 오류 제어를 합니다. 흐름제어가 뭘까요? 흐름 제어흐름 제어는 송신부와 수신부 사이에 생기는 데이터 처리 속도의 차이로 인해 생기는 데이터 손실을 방지하는 방법입니다.쉽게 말해, 이름 그대로 흐름을 제어하는 것입니다. 흐름제어의 방법은 뭐가 있을까요? 흐름제어 방법은 크게 정지 대기(stop-wait), 슬라이딩 윈도우(sliding window) 방식이 있습니다. 정지 대기(stop-wa.. 2025. 2. 15. 프로세스와 스레드 "프로세스와 스레드의 차이가 뭘까?" 이번글은 프로세스와 스레드에 대해 정리한 글입니다.아래의 내용은 "기술 면접 대비 CS 전공 핵심 요약집"의 내용을 참고했습니다. 프로세스란 무엇일까요? 프로세스컴퓨터에서 실행 중인 하나의 프로그램을 의미하고, 특정 작업을 수행하기 위한 명령어의 집합입니다.OS는 프로그램을 실행하면, 디스크에 저장된 데이터를 메모리로 로드합니다. 프로세스는 OS로부터 독립된 메모리 영역인(코드, 데이터, 스택, 힙)을 할당받고 다른 프로세스의 메모리 영역에 접근할 수 없습니다. 프로세스에 할당된 메모리 영역은 아래 그림과 같습니다. 프로세스 메모리 영역 구조는 아래 그림과 같습니다.각 영역은 어떤 역할을 할까요? 스택은 지역 변수, 함수의 매개변수, 반환되는 주소 값 등이 저장됩니.. 2025. 2. 12. [DB] 트랜잭션 "트랜잭션은 하나의 작업 단위라고 하는데, 그렇다면 트랜잭션이란 무엇일까?" 이번 글에서는 데이터베이스에서 중요한 개념인 트랜잭션의 개념에 대해 알아보겠습니다.(단, 트랜잭션 격리 수준은 좀 더 깊은 주제이므로, 이 글에서는 다루지 않고 다음 글에서 자세히 알아보겠습니다) "트랜잭션이란 무엇일까요?" 트랜잭션(Transaction)트랜잭션은 데이터베이스에서 하나의 논리적인 작업 단위를 의미합니다. 또한, 데이터베이스의 상태를 바꾸기 위해 수행하는 작업 단위 또는 일련의 연산을 의미합니다. "작업 단위가 어떤 작업 단위를 말하나요?" DB에서 작업 단위는 하나의 쿼리 묶음이라고 생각하면 됩니다.쇼핑몰 예시와 쿼리문을 통해 작업 단위를 알아보겠습니다. 쇼핑몰에서 결제가 이루어지는 일반적인 흐름은 다음과 같습.. 2025. 2. 9. [네트워크]TCP/IP & HandShaking "TCP/IP 어디서 듣긴했는데, 뭐였더라?" 이번글은 지난 OSI 7계층에 이어, TCP/IP에 대해서 알아보도록 하겠습니다.먼저, TCP/IP는 무엇일까요? TCP/IP란TCP/IP는 인터넷에서 데이터를 주고받기 위한 네트워크 프로토콜을 의미합니다.TCP는 Transmission Control Protocol로 해석하면 전송 제어 프로토콜이 됩니다. "전송을 제어하는 규칙이 뭔가요?"데이터를 안전하고 순서대로 전달해주는 약속(규칙)을 의미합니다. "그럼, TCP가 하는 역할이 뭔가요?"인터넷에서 데이터를 주고 받을 때, 중간에 손실이 되지 않도록 보장을 하고 순서가 뒤바뀌지 않도록 정리해서 보내주는 역할을 합니다. "데이터가 중간에 손실이 된다는게 잘 와닿지 않는데 어떤 사례가 존재하나요?"예시로.. 2025. 2. 1. [네트워크] OSI 7계층 오늘은 네트워크 파트 중 OSI 7계층에 대해서알아보도록 하겠습니다.🧐 OSI 7계층, 각 계층은 어떤 역할을 하길래 7개나 필요할까요?하나씩 알아보도록 하겠습니다. 먼저, OSI 7계층이 무엇일까요?OSI 7계층OSI 7계층(Open Systems Interconnection Reference Model 7 Layesr)은 국제 표준화 기구인 ISO(International Organization for Standardization)에서 지정한 네트워크 통신 과정을 7단계로 나눈 표준 모델입니다. "이 모델은 어떻게 네트워크를 통해 데이터를 전달하게 될까요?"간략히 나타낸 그림은 다음과 같습니다. 데이터를 송신시에는 높은 계층에서 낮은 계층으로 전달이 되고, 수신부에 도착한 데이터는 가장 낮은 계층.. 2025. 1. 27. [운영체제] 스케줄링 스케줄링을 왜할까?한정된 CPU 자원 내에서 멀티 프로세스 환경의 여러 프로세스를 효율적으로 실행시키기 위함입니다.주어진 자원 내에서 최대한 효율적으로 자원을 활용하는 것이 당연한 부분입니다. 스케줄링(Scheduling) : 순서를 짠다, 일정 순서를 정합니다. 5가지 목적공평성 : 모든 프로세스가 공평하게 실행되어야 합니다.효율성 : 자원을 효율적으로 사용해야 합니다.안정성 : 높은 우선순위의 프로세스를 먼저 처리하도록 합니다.반응 시간 보장성 : 일정 시간 내에 응답할 수 있도록 스케줄링 해야 합니다.무한 연기 방지 : 프로세스에 대한 처리가 무한히 연기되지 않도록 스케줄링 해야 합니다. 스케줄링은 어떤 단계를 갖고 있는가? 스케줄링은 장기 스케줄, 중기 스케줄, 단기 스케줄링이 있습니다. 장기 스.. 2024. 11. 26. 이전 1 2 다음