반응형 OS & Hardware & Network5 동시성 문제[2] - Mutex, Semaphore, Monitor(동기화 도구) 동기화 도구이전 포스팅의 Pererson’s Solution을 보면 이론적으로 완벽하지만 entry section, critical section, exit section에서 사용하는 명령어가 Atomic 하지 않아 기대 결과가 달라졌다.이는 기계어의 관점에서 또는 저급 언어 수준에서 구현이 되지 않았기 때문인데 이렇게 개발자가 기계어 수준에서까지 개발을 하는 일은 쉬운 일이 아니기에 고급 언어에서 아래와 같은 동기화 도구를 제공한다. 각 동기화 도구에 대해 알아보자. Mutex LockSemaphoreMonitor Mutex Lockmutex란 mutual exclusion에서 나온 용어로 상호배제를 목표로 한다. lock을 acquire(획득)한 프로세스나 스레드만 critical section에 접.. 2024. 7. 28. 동시성 문제[1] - 동시성 문제의 원인과 해결법 동시성 문제동시(concurrent)에 공유 데이터에 access(접근)하여 데이터를 manipulate(조작)하는 과정에서 데이터의 일관성이 깨지는 문제 동시성 문제의 근본 원인프로세스나 스레드는 instruction 실행 도중 intruppted(중단) 될 수 있고 CPU의 코어는 다른 프로세스나 스레드 작업을 할당 받을 수 있다. 즉, 두개 이상의 프로세스나 스레드를 동시에 수행할 때 CPU의 context-switching으로 인해 발생한다는 것이다. 아래 간단한 예제를 통해 동시성 문제의 한 예를 보자.public class ConcurrencyProblem { public static int COUNT = 0; public static void main(String[] args) { .. 2024. 7. 28. 프로세스[1] - 프로세스란, PCB와 Context Switch 프로세스실행 중인 프로그램프로세스는 os의 실행 작업의 단위이다.프로세스는 작업을 완료하기 위해 CPU, memory, file, I/O devices와 같은 자원을 필요로 한다.각각의 프로세스는 독립된 메모리 영역을 할당 받는다.* 프로그램 : 하드웨어를 동작시키는 명령어 집합 프로세스의 구조 프로세스는 메모리에서 위와 같이 여러개의 구역으로 나뉜다.코드 영역(Text Section)데이터 영역(Data Section)힙 영역(Heap Section)스택 영역(Stack Section)* JVM으로 설명하면 코드 영역과 데이터 영역이 메서드 영역이다. 프로세스의 상태상태설명new(생성)프로세스 생성running(실행)Instruction(명령어)이 CPU에 의해 실행됨ready(준비)- 프로세스가 C.. 2024. 7. 25. HTTP 통신 깊게 알아보기 HTTP란?HTTP는 HyperText Transfer Protocol의 줄임말로 웹 환경에서 정보를 주고받는 의사소통의 규칙 및 약속이며 데이터 전송에 TCP 프로토콜, 라우팅에 IP프로토콜을 사용하는 구조를 갖추고 있다. ※ TCP에 대한 설명은 아래 링크를 참고 https://developer111.tistory.com/100 HTTP 버전별 특징 HTTP/0.9HTTP/1.0HTTP/1.1메서드GETHEAD, POST 추가PUT, PATCH, DELTE 등 추가헤더미존재http 버전 정보, 상태코드, Content-type 등Connection, Host 등응답HTML 문서만다양한 문서 가능- HTTP 0.9헤더가 존재하지 않고 GET 요청만 존재하며 http메시지가 한줄로 이루어진 원라인.. 2023. 8. 16. 이전 1 2 다음 반응형