[C] 쓰레드 스케줄러 과제 구현 90% -> 50%...

프로그래밍/Etc 2022. 11. 27. 03:34

pthread 계열의 Thread 함수를 직접 구현하고, 스케줄러까지 구현해서 쓰레드를 Round Robin 형태로 스케줄링 실행하는 과제를 진행하고 있습니다. 저번에는 비슷하게 시스템 콜로 Tree를 구현했었는데 이번건 진짜 말도 안되게 어렵네요. 머리가 아파집니다. 분명 다 제대로 구현했다고 생각했는데 thread_join() 구현하는 부분에서 계속 프로그램이 터지네요 ;; 과제하라고 테스트 케이스를 던져줬는데 계속 내용도 바뀌고 출력이 어떻게 나와야 한다는 것도 없으니 제대로 진행하고 있는지도 모르겠고 짜증만 납니다 ㅡㅡ. C로 연결리스트도 만들고, 컨텍스트 스위칭도 구현해보고, clone() 으로 쓰레드도 생성해보고 사실 초반에 잘 돌아갈때까진 나름 즐거웠는데 join 에서 막히니 시간은 계속 뺏..

Article Thumbnail
[Fallout4] 폴아웃 4 NPC 적대 풀기 명령어

정보/게임 2022. 11. 20. 05:39

폴아웃 4 퀘스트 진행중 다이아몬드 시티에서 경비병을 보고 몸이 반사적으로 공격키를 눌렀습니다.. 당연히 경비병이라길레 기본 적대인줄 알았더니.. 다이아몬드 시티 NPC들 학살은 쉬웠으나 문제는 여기서 메인 스토리를 진행해야하는 NPC들은 무적이라 계속 적대인 상태로 저를 죽이러온다는 겁니다. 스토리 진행이 막혀버렸죠.. 스카이림 리버우드에서 실수로 공격키를 눌렀더니 주민 전체가 저를 죽이러오는 당황스러운 상황이 역시 폴아웃 4에서도 일어났습니다. 사실 이전 세이브로 돌리는게 제일 쉬운 방법인데, 저는 세이브를 덮어쓰기해서.. 적대가 걸린 NPC를 명령어로 풀어주시면 됩니다. ` 키를 (키보드 맨 왼쪽위에 있음) 콘솔을 열고, 적대를 풀 NPC를 클릭해서 잘 타겟팅 한다음에 아래 명령어를 입력해봅시다. ..

Article Thumbnail
[Unix] 시스템 소프트웨어 개요 / 시스템 프로그래밍이란 무엇인가? (OS, System Call)

CS/System 2022. 11. 16. 22:54

* 본 글은 학부생의 입장에서 공부 내용을 정리하기 위해 작성되었습니다. 틀린 내용이 있으면 피드백 부탁드리며, 무분별한 비방 작성시 차단 될 수 있음을 알려드립니다. 안녕하세요 파일입니다. 이번에 UNIX 시스템 프로그래밍에 대해서 학습하게 됐는데 기억을 잊지 않고자 관련 내용을 정리하고자 합니다. 만약에 UNIX 기반 운영체제나, Linux 등을 잘 모른다면 해당 포스팅을 먼저 선행 학습하시고 해당 글을 읽는걸 추천드립니다. 기본적으로 전공자를 대상으로하며, 컴퓨팅 시스템의 대략적인 이해를 가지고 읽는걸 권장합니다. 우선 시스템 프로그래밍 (소프트웨어) 에 관한 내용을 알아보기 앞서 필요한 간단한 사전지식을 획득하고 넘어가 보겠습니다. 우리는 기본적으로 컴퓨터를 사용 시 HW를 직접 이용하진 않습니다..

Article Thumbnail
[Arduino] 아두이노 레오나르도 절대 좌표 이동 구현 (영상 포함)

프로젝트/아두이노 2022. 11. 13. 04:53

아두이노 레오나르도를 이용한 절대 좌표 이동 테스트 입니다. 기본적으로 레오나르도에서 제공하는 Mouse.move() 함수의 경우 옮길 수 있는 양이 한번에 127 스탭만큼 옮길 수 있는 제한도 있고 기본적으로 절대 좌표가 아니라 현재 마우스 위치에서 x , y 좌표 만큼 +/- 옮길 수 밖에 없습니다. 아두이노를 이용해서 절대 좌표 이동을 구현하고 싶으면, 기본적으로 MouseTo 같은 라이브러리를 이용하거나, 현재 마우스 좌표 위치와 원하는 좌표 위치를 같이 보내서 처리하면 됩니다. 저는 2번째 방법인 현재 마우스 좌표 위치는 PC쪽에서 pyautogui로 계산해서 보내고, 원하는 좌표를 레오나르도에 시리얼 통신으로 제공하면 레오나르도에서 알아서 계산해서 그 좌표로 이동하는, 절대 좌표 기능을 구현했..

Article Thumbnail
[Arduino/C++] 시리얼 모니터 데이터 공백구분으로 입력받기, 명령어 처리

프로그래밍/C++ 2022. 11. 12. 21:03

// 생성자의 여러번 호출을 막기 위해 전역 변수로 String 변수 2개를 호출한다. String input; String args; void setup() { Serial.begin(9600); } void loop() { //시리얼 데이터가 들어왔을때 (버퍼에 내용이 채워졌을때) 작업 if(Serial.available() > 0) { input = Serial.readStringUntil('\n'); //엔터까지 입력받기 Serial.println("INPUT : " + input); for(int i = 0; i < input.length(); i++ ) { char c = input[i]; //공백이 아닌경우만 문자열에 결합시킨다. (담아준다.) if(c != ' ') { args.concat..

Article Thumbnail
[C++] 연산자 오버로딩 (Operator Overloading)

프로그래밍/C++ 2022. 11. 9. 00:55

* 본 글을 읽기 전에 미리 구조체와 C++의 Class 개념에 대해 미리 알고 학습을 하는 것을 권장드립니다. 일반적으로 C언어에서 사용하는 +, -, ==, [] 와 같은 기본 연산자들은 모두 C언어에서 기본적으로 정의 되어 있는 데이터 타입 (int, double, char 등) 에서만 사용 가능한 연산이였기에, 사용자가 정의해서 만든 타입인 구조체로 만든 구조체 변수의 경우 이러한 연산자를 적용할 수 없었습니다. #include struct point{ int x; int y; }; int main(){ struct point pos1 = {10,20}; struct point pos2 = {20,40}; if(pos1 == pos2){ //오류 발생 printf("same"); } return ..

Article Thumbnail
[VSCode] 점유율 100% 터미널, 에디터 렉 오류 rg.exe 해결

프로그래밍/VSCode 2022. 11. 8. 22:37

VSCode에서 코딩 진행중인데 터미널하고 에디터에서 정체 불명의 불쾌한 렉이 발생했습니다. 확인해보니깐 VSCode에서 rg.exe가 계속 실행되고 있더라구요. 에디터에서 코드 수정할때까진 괜찮은데, VSCode 터미널에서 gcc나 g++ 로 컴파일 해서 실행하면 저렇게 rg.exe가 무한 실행되며 문제가 발생합니다 -.- rg.exe가 뭔지 확인해보니 폴더에서 텍스트를 검색할 때 쓰는 ripgrep 이라는 아주 빠른 도구라고 합니다. 렌더링 에서 GPU 가속 끄는것도 안먹히고, VSCode 재설치해도 안되길레 혹시 확장 프로그램이 문제인가? 싶어서 최근에 설치한 C-mantic 이라는걸 삭제하니깐 해결이 되네요. VSCode에서는 C++ 코딩할때 VS처럼 헤더파일에 class 선언해두고, 멤버 함수 ..

Article Thumbnail
오랜만에 알리 쇼핑했습니다

일상 2022. 11. 7. 03:05

11.11 할인인가? 11월 1일부터 광군제로 세일을 하길레 물건들이 싸고 좋은 가격에 판매중이라 오랜만에 필요한 것 쇼핑을 좀 했습니다 ㅎㅎ. 구매 내역은 C타입 허브, 블루투스 5.0 동글 , USB 허브, C타입 ㄱ자 케이블 입니다. 총 $32.44 치 구매했는데 환율이 이 모양이라 생각보다 소비가 엄청나게 나가네요.. 할인을 많이 받아도 환율때문에 이득이 별로 안돌아 오는느낌.. 어쨌든 오랜만에 쇼핑했는데 까먹고 있으면 2주나 3주쯤 안에 물건이 하나둘씩 도착할 듯 합니다~ 디솔더링 쉽게 해주는 pro'skit SS-331H 요것도 참 좋아보이던데 비싸서 좀 고민되네요.. 장난감 CNC도 한번 사보고 싶고.. 역시 돈이 문제입니다.

Article Thumbnail