legacy/Operating System2024. 10. 5. 21:19블로킹 큐(Blocking Queue)

블로킹 큐(Blocking Queue)는 동기화와 스레드 안전성을 보장하는 자료구조이다. 주로 멀티 스레드 환경에서 사용되며, 생산자-소비자 패턴과 같은 문제를 해결할 때 유용하다.블로킹 큐의 동작 방식블로킹 큐는 큐가 비어 있거나 가득 찼을 때, 큐에 데이터를 넣거나 빼려는 스레드가 일정 조건을 만족할 때까지 대기 상태(블로킹)에 들어간다. 이를 통해 스레드 간의 안전한 데이터 공유가 가능하다.삽입 시 대기큐가 가득 찬 경우, 데이터를 삽입하려는 스레드는 큐에 빈 공간이 생길 때까지 대기한다.다른 스레드가 큐에 데이터를 소비해서 자리가 생기면, 삽입하려는 스레드는 대기 상태에서 깨어나고 데이터를 큐에 넣을 수 있다.삭제 시 대기큐가 비어 있는 경우, 데이터를 꺼내려는 스레드는 큐에 새로운 데이터가 삽입..

논 블로킹 I/O (비동기 방식)
legacy/Operating System2024. 10. 5. 15:39논 블로킹 I/O (비동기 방식)

동기 방식은 블로킹 I/O에서는 실행 상태에서 CPU 자원을 사용하던 프로세스가 입출력 작업이 발생하면 대기 상태로 이동한다. 대기 상태로 이동하면 사용하던 CPU 자원은 운영체제의 CPU 스케줄링에 의해 준비 상태에 있는 다른 프로세스에게 할당한다. 입출력 작업이 종료되면 대기 상태에서 준비 상태로 이동되어 CPU 스케줄링을 대기하게 된다. 비동기 방식인 논 블로킹 I/O에서는 실행 상태에 있는 프로세스가 입출력 작업이 발생하더라도 실행 상태를 유지하면서 CPU 자원을 사용한다. 이는 운영체제의 비동기 처리 메커니즘 덕분이다. 이 메커니즘은 CPU가 입출력 작업이 완료되기까지 기다리지 않고, 그 사이에 다른 작업을 할 수 있도록 하여 CPU 자원을 보다 효율적으로 사용할 수 있게 한다. 비동기 방식 메..

[운영체제] 임계 구역과 동기화 기법(뮤텍스 락, 세마포)
legacy/Operating System2024. 9. 17. 14:27[운영체제] 임계 구역과 동기화 기법(뮤텍스 락, 세마포)

이전에 뮤텍스 락과 세마포에 대해서 다룬 적이 있습니다. 현재 글은 이전 글을 다듬어서 새로 작성된 게시물입니다.https://server-technology.tistory.com/338  동기화가 필요한 이유여러 스레드가 동시에 임계 구역(Critical Section)에 접근하면 데이터 일관성 문제가 발생할 수 있다. 임계 구역이란 공유 자원에 여러 스레드가 동시에 접근하였을 때 문제가 발생할 수 있는 코드 영역이다. 여러 스레드가 동시에 임계 구역에 접근하여 문제가 발생하는 것을 레이스 컨디션(Race Condition)이라고 한다.레이스 컨디션 문제를 해결하기 위해서는 동기화 처리가 필요하다. 동기화란 실행 순서를 제어하고 상호 배제를 준수하는 것이다.실행 순서 제어 : 여러 스레드가 존재할 때 ..

[운영체제] 해시 테이블(Hash Table)과 해시 충돌(Hash Collision)
legacy/Operating System2024. 9. 11. 12:28[운영체제] 해시 테이블(Hash Table)과 해시 충돌(Hash Collision)

1. 해시 테이블(Hash Table)이란?해시 테이블이란 키와 값의 대응으로 이루어진 데이터 구조이다. 예를 들어, ISBN 번호가 키라면 그에 대응하는 책 제목이 값이 된다. 만약 ISBN 번호 9791162245651을 키로 입력하면 대응하는 값으로 혼자 공부하는 파이썬이 반환된다. 해시 테이블에서는 해시 함수를 사용하여 키를 특정 버킷에 매핑한다. 버킷은 배열처럼 여러 개로 이루어진 저장 공간이다. 해시 함수는 입력된 키에 대해 인덱스를 계산해 해당 버킷에 데이터를 저장하거나 찾을 수 있도록 한다. 예를 들어, Hanbit이라는 키를 해시 함수에 입력하면 해시 함수가 계산한 인덱스 2에 데이터를 저장하게 된다. 다른 키들도 마찬가지로 해시 함수를 통해 계산된 인덱스를 기반으로 버킷에 저장된다. 2..

[운영체제] 페이징 기법과 페이지 테이블의 문제점
legacy/Operating System2024. 9. 10. 21:28[운영체제] 페이징 기법과 페이지 테이블의 문제점

1. 페이징 기법은 외부 단편화 문제를 해결한다.페이징(paging) 기법은 프로세스의 논리 주소 공간은 페이지(page)라는 일관된 크기로 나누고 물리 주소 공간을 페이지와 동일한 크기인 프레임(frame)으로 나눈다. 프레임에는 페이지가 적재된다. 페이징 기법은 프로세스의 논리 주소 공간을 일관된 크기의 페이지로 나누기 때문에 메모리에 빈 공간이 발생하지 않는다. 따라서 외부 단편화가 발생하지 않는다. 가상 메모리 기법이란 프로세스의 일부만 메모리에 적재하여 실제 메모리보다 더 큰 프로세스를 실행할 수 있도록 하는 메모리 관리 기법이다. 보조기억장치의 일부를 메모리처럼 사용하거나 실행에 필요한 프로세스의 일부만 메모리에 적재하여 메모리보다 더 큰 프로세스를 실행할 수 있다.  페이징 기법에서도 스와핑..

image