![[PintOS] GDB Debugging Tool 사용 방법](http://i1.daumcdn.net/thumb/C120x120/?fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fcgppvb%2FbtsOg4m5EkD%2FAAAAAAAAAAAAAAAAAAAAALHKy2pQu6hp5oRhIUK4ftlGF9SLUGrCDtOUKkFwnERL%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DOiRm%252FfF%252BJm1YEm16VHcaH5%252F1yMU%253D)
[PintOS] GDB Debugging Tool 사용 방법
GDB 디버깅하기 운영체제를 직접 구현하는 PintOS 프로젝트는 많은 시행착오를 겪게 됩니다. 간단한 코드 수정 하나에도 KERNEL PANIC🔥.. 문구를 만나거나 아무런 출력 없이 프로세스가 종료되는 경험을 하게 됩니다. 이럴때 가장 막막한 건, “대체 어디서 잘못된 걸까?”를 알 수 없다는 점입니다. 이럴 때 사용할 디버깅 도구는 GDB(GNU Debugger) 입니다. 저 또한 GUI 기반의 디버깅에 익숙하여 CLI 기반의 디버깅 툴에 익숙해지기 쉽지 않았는데요. 단순한 printf 문 로그 출력만으로 확인하기 어려운 메모리 접근 에러나 페이지 폴트 같은 문제의 원인을 정확하게 추적하는데 많은 도움을 받았습니다! GDB를 이용해 PintOS 테스트 케이스를 디버깅 하는 방법을 차근차근 정리해보..
- IT 성장기 (교육이수)/크래프톤정글 (2025.03-07)
- · 2025. 5. 29.
![[PintOS] Project 1 : Alarm Clock 구현](http://i1.daumcdn.net/thumb/C120x120/?fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fr7AX6%2FbtsN2n0qLve%2FAAAAAAAAAAAAAAAAAAAAAHNsHVlO3OI3GXLdbWKhIHxIB7Q7BJSJVmeZqww66aTv%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DN5K087wCPQ73UX4SidI1DARnC2Q%253D)
[PintOS] Project 1 : Alarm Clock 구현
Alarm Clock운영체제의 Alarm clock 기능이란 운영체제가 실행중인 스레드를 잠시 재웠다가 일정 시간이 지나면 다시 깨우도록 하는 것이다.Busy Wait어떤 조건이 충족될 때 까지 CPU를 계속 돌리며 루프를 도는 방식의 대기→ 문제 : 실제 대기 중인 상태에서도 CPU를 계속 사용함Sleep-awake (잠자는 스레드)일정 시간 동안 스레드를 block 상태로 전환→ 해당 스레드는 스케줄러에서 제외되고, CPU는 다른 스레드에게 양보됨→ 시간이 지나면 timer interrupt가 깨워줌과제 관련 개념 이해위의 과제를 들어가기 전에 선행으로 이해가 필요했던 내용을 간략히 적어봅니다.프로세스 상태 전이 (State Transition)Ready 상태프로세스가 실행할 준비는 되었지만, 아직 ..
- IT 성장기 (교육이수)/크래프톤정글 (2025.03-07)
- · 2025. 5. 19.
[CS] CSAPP : 11장 네트워크 프로그래밍
11.1 클라이언트-서버 프로그래밍 모델모든 네트워크 응용 프로그램은 클라이언트-서버 모델에 기초한다.1. 클라이언트-서버 모델하나의 애플리케이션은 서버 프로세스와 하나 이상의 클라이언트 프로세스로 구성된다서버는 특정 자원을 관리하고, 자원을 조작하여 클라이언트에게 서비스를 제공한다예) 웹 서버는 디스크에 저장된 파일을 관리하고 클라이언트 요청에 따라 반환2. 트랜잭션 (Transaction)클라이언트-서버 간 상호작용은 4단계 트랜잭션으로 구성클라이언트가 서비스를 필요로 할 때, 서버에 요청(request) 보냄 (Client : ”스펀지밥 이미지 줘”)서버는 요청을 받고, 해석, 자원을 조작 (Server : ”스펀지밥이 어딨는지 디스크에서 읽어보자..”)서버가 응답을 클라이언트에게 전송 (Serve..
- IT 성장기 (교육이수)/크래프톤정글 (2025.03-07)
- · 2025. 5. 9.