목록CS/운영체제 (3)
백엔드 개발자
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/GQppc/btsLhpl0f7S/kAkG5KkrFVGKejDzAAla5K/img.png)
레이스 컨디션(Race Condition)과 동기화 기법의 필요성레이스 컨디션은 여러 스레드가 동일한 자원에 동시에 접근하거나 작업을 수행할 때 발생하는 동기화 문제다. 각 스레드의 실행 순서에 따라 매번 결과가 달라질 수 있어 데이터 무결성이 깨지거나 의도치 않은 동작이 발생할 수 있다.동기화 기법 Lock멀티스레드 환경이나 멀티프로세스 시스템에서는 여러 작업이 동일한 자원에 동시에 접근할 경우 데이터 일관성이 깨지거나 충돌이 발생할 수 있다(Race Condition 문제). 이를 방지하기 위해 동기화(Synchronization) 기법이 필요하며, 이 중 가장 널리 사용되는 것이 바로 Lock 기법이다.Lock은 특정 자원에 대한 접근 권한을 하나의 스레드나 프로세스가 독점적으로 가지도록 보장하여 ..
가상 메모리란?메모리 공간을 추상화해서 제공하는 것이라고 할 수 있다.프로세스는 RAM에 올라와서 실행이 되는 것인데, 이 메모리 공간(RAM)은 보호 영역에서 운영체제가 관리한다. 그렇기 때문에 운영체제에서 이러한 메모리 영역을 추상화하여 제공하고 각 프로세스에 독립적인 메모리 주소 공간을 제공하여 메모리를 보호한다. 또한, 실제 메모리 보다 큰 메모리로 보이도록 하고, 실제보다 더 큰 메모리 사용을 가능하게 만들어주는 방법이다.요구 페이징가상메모리의 핵심 요소 중 하나는 필요한 메모리만 올려서 실행하여 실제보다 더 큰 메모리 사용이 가능하도록 해주는 것이다.예를 들어 어떤 프로그램은 3G의 메모리를 사용해야 하는데 실제 메모리 크기가 2G라면 전체 데이터를 모두 올리지 못할 것이다. 또, 멀티프로그래..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/DIiyz/btsKZu3Tglg/8Kys3j3cU2Enfd1lYj3igk/img.png)
프로세스 (Process)1. 간단한 정의프로세스는 프로그램을 실행해서 메모리에 올라와 CPU 할당을 받을 수 있는 상태라고 할 수 있다.프로그램을 실행하면 OS는 프로그램을 메모리에 적재하고, 이를 위한 프로세스 제어 블록(PCB)을 초기화한다. 그리고 Ready Queue에 추가되어 CPU 할당을 받을 수 있는 준비 상태가 된다.2. 메모리 구조2.1. 코드 영역실행할 프로그램의 명령어(코드)가 저장된 영역이다.예를 들어, 함수 정의, 루프, 조건문 등의 실제 기계어 코드가 여기에 포함된다.읽기 전용(Read-Only)으로 설정되어 보통 변경되지 않는다.2.2. 데이터 영역전역 변수와 정적 변수 등이 저장된다.초기화된 변수는 초기화 데이터 세그먼트에 저장되며, 초기화되지 않은 변수는 BSS(Block..