본문 바로가기

전체 글92

파일을 이용한 동기화 Race condition을 해결하기 위한 방법 : Lock mechanism FLOCK : 동기화(Lock을 획득/해제 설정)int flock(int fd, int ,operation) parameter- fd : Lock 획득/해제하려는 파일 디스크립터- operation LOCK_SH : shared lock 걸기LOCK_EX : exclusive lock 걸기LOCK_UN : lock 풀기LOCK_NB : non-block 다른 값과 ORing하여 사용반환값- 성공 시 0 , 싷패 시 -1 Shared lock(공유 락) :  한 프로세스 또는 쓰레드 작업 완료하기 전에도 다른 프로세스 또는 쓰레드에서 접근 가능-> lock 자체를 공유 가능 Exclusive lock(배타적 락) :  한 프로세.. 2024. 8. 13.
저수준 OpenAPI ※ 해당 글은 개인 공부 기록을 남겨놓는 것이 목적임으로 오류가 발생할수 있습니다.    오류 또는 업데이트된 사항이 있다면 댓글로 알려주시면 감사하겠습니다.  시스템 콜 :운영체제에서 커널 모드와 유저 모드로 나뉜다. 운영 체제 구성 중  커널은 운영체제의 핵심으로 프로세스, 하드웨어, 등등 컴퓨터 자원을 효율적으로 관리하는 역할을 가진다.  시스템 콜은 어플리케이션 유저 영역에서 커널 영역의 기능을 사용하고자 할 때 system call을 통해 필요한 기능 수행을 도와주는 인터페이스이다.  시스템 콜을 통해 유저 영역에서 커널의 기능을 사용할 수 있도록 도와준다  OpenAPI은  로우 레벨 system call을 실행하는 함수 목록들을 지칭한다.여기서는  open, close, read, write.. 2024. 8. 13.
동기화[2] - 뮤텍스 / 세마포어 / 스핀락 ※ 해당 글은 개인 공부 기록을 남겨놓는 것이 목적임으로 오류가 발생할수 있습니다.    오류 또는 업데이트된 사항이 있다면 댓글로 알려주시면 감사하겠습니다.  지난 동기화[1] 포스팅에서 동기화의 개념과 발생 가능한 문제점에 대해 포스팅 하였습니다. 이번 포스팅에서는 동기화로 발생가능한 문제점을 해결하기 위해 대표적인 메커니즘인뮤텍스 , 세마포어 , 스핀락에 대해 정리한다. 뮤텍스(Mutex, Mutualv exclusion , 상호 배제) Lock 메커니즘이며, 한 쓰레드만 Lock을 획득하고 임계 영역에 들어갈수 있도록 보장한다. 이 스레드는 임계 섹션에서 종료될 때만 Lock을 해제합니다. 프로그램이 시작되면 시스템에 특정 리소스에 대한 뮤텍스 개체를 생성하도록 요청합니다. 시스템은 고유한 이름이.. 2024. 8. 13.
동기화[1] - 개념 ※ 해당 글은 개인 공부 기록을 남겨놓는 것이 목적임으로 오류가 발생할수 있습니다.    오류 또는 업데이트된 사항이 있다면 댓글로 알려주시면 감사하겠습니다.개념 정리: 프로그램은 저장 장치에 저장되어 있는, 실행 가능한 코드의 정적인 집합입니다. 프로그램은 디스크와 같은 비휘발성 메모리에 저장되며, 사용자가 요청할 때까지 실행되지 않습니다. 프로그램은 소프트웨어 개발자에 의해 작성되고, 컴퓨터에서 실행될 수 있는 명령어들과 데이터를 포함프로세스(Process) : 컴퓨터 내에서 실행 중인 프로그램의 요소프로세스는 1. 프로세스명과 프로세스 아이디(PID)로 나타낸다.프로세스는 프로그램 카운터, 스택, 데이터 섹션 등 실행에 필요한 다양한 정보를 포함하며, 운영체제가 관리한다.프로세스가 실행 중 자신에게.. 2024. 8. 7.