728x90

분류 전체보기 209

Monitor (모니터)

모니터모니터는 데이터와 그 데이터를 다루는 함수들이 하나의 객체처럼 캡슐화된 동기화 구조입니다.보통 언어나 시스템 레벨에서 제공되며, 락 + 조건변수(Condition variable)로 구성되어 있습니다.구성요소공유 자원 (Shared data)Lock (락) - 임계 구역 보호조건 변수 (Condition Variable) - 특정 조건이 만족될 때까지 대기 / 신호주요 연산wait() ( cond_wait() )→ Lock을 놓고 기다림. 조건이 만족될 때 다시 락을 획득합니다. (Lock과 함께 사용)signal() ( cond_signal() )→ 대기 중인 스레드 하나 깨움breadcast() ( cond_breadcast() )→ 모든 대기 스레드 깨움특징한 번에 하나의 스레드만 모니터 내부..

Mutex (뮤텍스)

Mutex뮤텍스는 한 번에 하나의 스레드만 임계 영역(공유 자원 독점 보장)을 실행할 수 있도록 하는 이진 세마 포어(1또는 0만 존재)에 가까운 동기화 방법입니다.Mutex는 mutual exclusion(상호배제)의 약자입니다.구성요소Lock 상태(flag): 현재 사용 중인지 아닌지 표시 (보통 바이너리 상태)소유자(owner): Lock을 현재 소유하고 있는 스레드 (PintOS에서는 holder)대기 큐(waiters): Lock을 기다리는 스레드 리스트 (자원기다림)주요 연산lock_acquire()→ Lock을 획득. 하나의 자원 차지 (다른 스레드가 소유 중이면 대기합니다)lock_release()→ Lock 해제. (다음 대기 스레드에게 넘깁니다)lock_held_by_current_th..

세마포어

세마포어프로세스 / 쓰레드에서 공유 자원의 접근을 제어하는 정수형 변수입니다. 즉, 자원이 몇개 남았는지 나타내는 카운터입니다.여러 스레드가 같은 변수 / 버퍼 / 장치 등에 동시에 접근하면 잘못된 결과를 낼 수 있기때문에 사용합니다.구성요소정수값(value)현재 자원이 몇 개 남았는지를 나타냅니다. (value 가 3이면 동시에 3개의 쓰레드가 접근 가능)대기 큐 (waiters list)자원이 부족할 때 기다리는 스레드들을 담고 있습니다.주요연산P() 또는 wait() 또는 down()→ 세마포어 값을 1 감소. 값이 0 이하라면 대기(block) 상태입니다. [sema_down()]V() 또는 signal() 또는 up()→ 세마포어 값을 1 증가. 대기 중인 스레드가 있으면 하나를 깨웁니다. [s..

쓰레드(Thread)

쓰레드프로그램에서 한 순간에 하나의 명령어만을 실행하는 고전적인 관점에서 멀티 쓰레드 프로그램은 하나 이상의 실행 지점을 가지고 있습니다.멀티 쓰레드는 각 쓰레드가 프로세스와 매우 유사하지만, 차이가 있다면 쓰레드들은 주소 공간을 공유하기 때문에 동일한 값에 접근할 수 있습니다.하나의 쓰레드의 상태는 프로세스의 상태와 매우 유사합니다.쓰레드는 어디서 명령어들을 불러 들일지 추적하는 프로그램 카운터와 연산을 위한 레지스터들을 가지고 있습니다.→ 만약, 두개의 쓰레드가 하나의 프로세서에 실행 중이라면 실행하고자 하는 쓰레드는 반드시 Context switch을 통해서 실행 중인 쓰레드와 교체되어야합니다. 쓰레드간 문맥교환은 레지스터들 기준으로 저장하고 복원한다는 점에서 프로세스 과정과 유사합니다.프로세스가 ..

프로세스 (Process)

프로세스프로세스는 실행중인 프로그램이다. 이러한 프로세스의 하드웨어 상태 중 가장 중요한 구성 요소는 메모리이다. 명어들은 메모리에 저장된다. 실행 프로그램이 읽고 쓰는 데이터도 메모리에 저장된다. 프로세스의 하드웨어 상태를 구성하는 레지스터는 다음과 같다.프로그램 카운터(명령어 포인터): 프로그램의 어느 명령어가 실행 중인지 알려줍니다.스택 포인터, 프레임 포인터: 함수의 변수와 리턴 주소를 저장하는 스택을 관리할 때 사용합니다.프로그램은 영구 저장장치에 접근하기도하며, 입출력 정보는 프로세스가 열어 놓은 파일 목록을 가지고 있다.프로세스 API생성: 새로운 프로세스를 생성합니다. 쉘에 명령어를 입력하거나 응용 프로그램을 실행 시키면, OS가 새로운 프로세스를 생성합니다.제거: 프로세스를 강제로 제거할..

WEEK 09 PintOS TIL(5월10일 토요일)

[목표]공식문서와 관련된 내용을 공부합니다. (진행중)09:50 ~ 12:00포토샵을 쓸일이 있어서 설치작업을 했다. (새로운 버전으로)벨로그, 티스토리 및 노션 정리중이다. 태그가 어지럽고 정리해야될 내용이 많아 시간을 좀 쓰겠다. 태그가 너무 많아 어느정도만 정리했다. 앞으로 자제해서 태그써야겠다.12:00 ~ 13:15식사를 하고 점심시간동안 스타크래프트를 하면서 놀았다.13:15 ~ 18:00아까 전에 이어서 프로세스와 스레드 개념을 가볍게 정리하겠다. 라고 생각한게 꽤 오래걸렸다.18:00 ~ 18:45주말이라 공부를 쉬엄쉬엄했다. 머리를 풀겸 스타1 좀 했다.18:45 ~ 19:30배달 시키기전에 이야기좀 나눴다.19:30 ~ 20:10쓰레드 정리중이다.20:10 ~ 20:40식사 진행(햄버거..

CPU 스케줄링 5가지

CPU 스케줄링 5가지FCFS비선점형가장 기본적으로 먼저 온 순서대로 프로세스를 실행합니다.간단하지만, 대기 시간이 길어질 수 있습니다.왜냐하면, 나중에 온 프로세스가 먼저 처리되면 더 효율적인 경우도 있는데 해당 방식은 무조건적으로 먼저 온 프로세스를 처리하기 때문입니다.SJF비선점형작업 시간이 짧은 것부터 먼저 실행합니다.CPU 작업 시간이 가장 짧은 프로세스를 우선 실행합니다.이론적으로 평균 대기 시간이 가장 짧습니다. 하지만 실제로 작업 시간이 정확히 얼만지 예측이 어렵습니다.SRTF선점형새로운 작업이 들어왔을시, 남은 작업 시간을 계산하여 짧은 것부터 먼저 실행합니다. SJF의 선점형 버전이라고 생각하면 쉽습니다.실행 중이던 프로세스보다 더 짧은 남은 시간을 가진 프로세스가 도착하면, 실행 중인..

Git 병합 시 호환성 트러블슈팅

1. [5월 8일 목요일] OS별 개행문자 처리 해결(merge)Truble일부러 충돌 사항을 가정해서 병합 테스트를 했는데, 해당 과정에서 fatal: 파일 .git/config 안에 12번 줄에 잘못된 설정 이라는 문제가 생김.확인결과 맥북과 윈도우의 OS 차이로 개행문자 처리가 달라서 Git이 어떤 기준으로 처리할지 몰라서 config파일에 오류가 생긴것이었다. Mac 은 LF, CR이 따로 처리 하고, 윈도우는 CRLF 한번에 처리한다. 이 차이에서 문제가 발생한다.Shooting→ 어쨋든 해당 문제사항을 처리하기 위해서는 윈도우 컴사용자가 CRLF > LF 변경하는 git config --global core.autocrlf true 을 치던가Mac 사용자가 LF를 Line ending으로 설..

WEEK 09 PintOS TIL(5월9일 금요일)

목요일부터 협업을 위해 준비한 것들이 있어 해당 내용부터 작성하였습니다.이번주부터 PintOS 주차로 폼팩터에 대한 변화가 있을 예정입니다. 주로 팀을 기반으로 하는 프로젝트가 우선이므로 개인 노션을 쓸 시간이 없을 예정이므로 하루의 일정들과 개념들을 작성하겠습니다.![](https://velog.velcdn.com/images/prkty/post/b08e2e16-5398-4c4a-a54e-32b2c942dbf4/image.jpg)# 5월 8일 목요일## 22:30 ~ 02:00이사를 하고 깃허브하고 노션 설정을 하면서 협업 환경을 설정하고 있다. 깃허브를 설정해서 팀원간의 브런치 환경을 테스트하고 있다.일부러 readme 파일을 충돌나게 설정하고, 테스트 중이다.해당 과정에서 git/config 파일이..

팀스파르타 채용설명회

팀스파르타 채용설명회IT 메이커 교육 (PM, 디자인, 개발), 게임 개발, 스튜디오, 아웃소싱, 글로벌까지팀스파르타는 어떻게 일하는가?쌍방향으로 흐르는 정보(모든 직원이 모이는 시간을 가진다), 정글의 티타임과 같은 것 같음치열하게 일하되, 그 안에 사람이 있다는 걸 잊지 않고 개인의 성장을 진심으로 배려하는 문화소모임(운동, 디깅, 술 등) 다양한 모임 지원정글 분들이 엄청 많다. (전체 개발 인력에 60% 가량)스터디 문화가 활발하다.(404 페이지에 게임 만들기 등)유급 휴가 무제한 + 여름/겨울 방학 일주일(자유 휴식) → 몰입 환경 구성팀원의 개발 이해도가 굉장히 높다. (PM)핵심가치빠르게(간결하게 표현), 와우하게(예상치못한 순간에), 진정성 있게(고객을 생각하는 마음)함께 밥 먹고 싶은 ..

728x90