반응형

2024/10 58

[OSTEP] 병행성 CH29 - CH30

CH29 락 기반의 병행 자료 구조 자료 구조에 락을 추가하면 해당 자료 구조를 경쟁 조건으로부터 안전한, 쓰레드 사용에 안전 (쓰레드 안전, Thread Safe) 자료 구조로 만들 수 있다 핵심 질문 - 자료 구조에 락을 추가하는 방법 특정 자료 구조가 주어졌을 때, 어떤 방식으로 락을 추가해야 그 자료 구조가 정확하게 도작하게 만들 수 있을까? 다수의 쓰레드가 해당 자료 구조를 동시에 접근토록 해서 (병행성) 성능을 향상시키려면 어떤 일을 해야할까? + 병행성 - 뮤텍스 락, 세마포어, 컨디션 변수 락 - 공유하는 자원에 락을 걸어서 하나만 접근 세마포어 - 자원에 접근하는 쓰레드 개수를 제한을 둔다, 1개 이상 접근 가능컨디션 변수 - 재운다, 깨운다 + 교착 상태 - 서로가 서로의 자원을 기다리..

[OSTEP] 병행성 CH28 락 Lock

CH28 락 Lock 여러 개의 명령어들을 원자적으로 실행하고 싶지만, 단일 프로세서의 인터럽트 등으로 인해 겪는 어려움을 락 Lock 을 이용해 해결해 보고자 한다, 프로그래머들은 소스 코드의 임계 영역을 락으로 감싸서 해당 영역이 하나의 원자 단위 명령어처럼 실행되도록 한다 🐣 원자성 Atomicity - 원자적으로 실행된다는 것은 그 작업이 중단되지 않고 한 번에 완료된다는 의미, 즉, 작업이 진행되는 동안 다른 작업이 개입할 수 없고, 결과는 항상 일관성을 유지해야 한다는 말이다, 그리고 CH26 P315에 아래와 같은 말이 있다연속된 동작들을 원자적으로 만든다는 개념은 간단하게 "전부 아니면 전무" 라고 표현할 수 있다수행하려는 모든 동작이 모두 다 처리된 것처럼 보이거나 실행되다가 동작을 묶..

[TIL][정글] Echo Server 만들기

정글 7주차, Web Server 를 만들게 되었다  첫 단계로 socket 을 이용하여, 요청을 하는 Client 와 응답을 하는 Server 를 만들었다 클라이언트는 서비스를 사용하는 주체이고, 서버는 서비스를 제공하는 주체이다쉽게 생각하면 클라이언트는 커피를 구매하는 손님, 서버는 커피(서비스)를 제공하는 커피숍이라고 비유할 수 있다 그림에서 Resource는 커피숍에 재료 (ex.얼음) 가 떨어졌을 때 재료를 사 올 수 있는 편의점이라고 보면 된다 Client-Server Model 은 클라이언트와 서버 간의 작업을 분리해주는 분산 어플리케이션 구조이자 네트워크 아키텍처이다이 구조에서는 클라이언트와 서버가 각자 역할에 맞게 구성되어 있다  Socket 은 소통의 종단점 (Endpoint) 으로,..

TIL 2024.10.28

[정글] Week07 - Web Server

Web Server 구현 나만의 웹서버를 만들어보기! (프록시 서버까지)소켓이 무엇인지 공부해봅니다.소켓을 이용하여, 요청과 응답을 하는 간단한 클라이언트/서버를 만들어봅니다.HTTP 프로토콜를 이해하고, 클라이언트의 request를 받고, response를 내어주는 웹서버를 만들어봅니다.- 웹서버는 어떤 기능들의 모음일까요?'컴퓨터 시스템' 교재의 11장을 보면서 차근 차근 만들어주세요.(기본 코드는 모두 있습니다!)웹 서버를 완성했으면 프록시(proxy) 서버 과제에 도전합니다.http://csapp.cs.cmu.edu/3e/proxylab.pdf (출처: CMU 카네기멜론)주요기능브라우저와 웹서버 사이의 중간에 위치 (브라우저 - 웹프록시 - 웹서버)브라우저는 프록시에 접속하고, 브라우저의 요청을 ..

[운영체제] CH25 - CH27

CH25 병행성에 대한 대화 멀티 쓰레드 프로그램에서 각 쓰레드는 독립적인 객체로 프로그램 내에서 프로그램 대신 일을 한다 이 쓰레드들이 메모리에 접근하는데, 접근하는 것을 조정하지 않으면 프로그램이 예상처럼 동작하지 않을 수 있다 운영체제는 락 Lock 과 컨디션 변수 Contidional Variables  같은 기본 동작으로 멀티쓰레드 프로그램을 지원한다 🐣 빠르고 정확해야 한다 CH26 - 병행성 개요 쓰레드 Thread 멀티 쓰레드 프로그램은 하나 이상의 실행 지점 (독립적으로 실행될 수 있는 여러 개의 PC 값) 을 가지고 있다 쓰레드들은 주소 공간을 공유하기 때문에 동일한 값에 접근이 가능하다 -> 프로세스와의 다른 점  하나의 쓰레드의 상태는 프로세스와 매우 유사하고,쓰레드는 다음에 실행..

[운영체제] CH16 - CH17

CH16 세그멘테이션베이스와 바운드 레지스터를 사용하는 주소 공간에서는 스택과 힙 사이에 사용되지 않는 큰 공간이 존재한다 그 공간은 사용되지 않더라도 주소 공간을 물리 메모리에 재배치할 때 물리 메모리를 차지하기 때문에 메모리 낭비가 심하고, 주소 공간이 물리 공간이 물리 메모리보다 큰 경우 실행이 매우 어렵다는 측면에서 유연성이 없다🐣 주소 공간이 물리 메모리보다 큰 경우 왜 실행이 어려울까 찾아보니, 그러면 모든 주소를 물리 메모리에 매핑할 수 없기 때문에 실행이 어려워지고, 이는 시스템의 유연성을 떨어뜨리는 요인이 된다고 한다 + 공간을 어떻게 활용할 것인가 - 공간 관리 기법 핵심 질문 - 대형 주소 공간을 어떻게 지원하는가스택과 힙 사이에 빈 영역이 크게 존재하는 주소 공간을 어떻게 지원하는..

반응형