지금까지 다룬 예외들은 저수준 메커니즘이었다. 시그널은 보다 높은 수준의 소프트웨어 ECF이다. 운영체제는 시근러을 통해 프로세스에게 “이런 이벤트 발생”이라고 열러준다. 예를 들어 사용자가 쉘에서 Ctrl+C 를 누르면 운영체제는 현재 실행 중인 프로세스에게 “종료”라는 의미의 시그널을 보낸다.2025.10.20 - [컴퓨터 이론/CS:APP] - 예외처리 #2 [CSAPP Chap 8] 예외처리 #2 [CSAPP Chap 8]앞서 논한 예외는 운영체제가 하드웨어를 제어하는 저수준 메커니즘이었다. 이제부터는 이 메커니즘을 활용해서 운영체제가 수행하는 일들을 확인 해 볼 수 있다. 프로세스와 동시성CPU 코어는hyeonistic.tistory.com 시그널의 종류와 역할시그널은 리눅스 시스템에서 약 30..
앞서 논한 예외는 운영체제가 하드웨어를 제어하는 저수준 메커니즘이었다. 이제부터는 이 메커니즘을 활용해서 운영체제가 수행하는 일들을 확인 해 볼 수 있다. 2025.10.20 - [컴퓨터 이론/CS:APP] - 예외처리 #1 [CSAPP Chap 8] 예외처리 #1 [CSAPP Chap 8]예외, 프로세스, 시그널 순으로 알아본다.예외예외는 CPU가 정상적인 프로그램 실행 흐름을 벗어나 미리 정해진 운영체제 코드를 실행하도록 만드는 사건이다. 프로세서 상태에 어떤 변화가 생hyeonistic.tistory.com 프로세스와 동시성CPU 코어는 하나이지만 동시에 프로그램을 켜놓을 수 있는 것은 사이사이에 문맥 교환을 아주 빠르게 반복하기 때문이다.문맥 교환은 기존 내용을 저장하고, 나중에 그대로 복원하는..
예외, 프로세스, 시그널 순으로 알아본다.예외예외는 CPU가 정상적인 프로그램 실행 흐름을 벗어나 미리 정해진 운영체제 코드를 실행하도록 만드는 사건이다. 프로세서 상태에 어떤 변화가 생겼을 때 발생하곤 한다. 이 예외를 처리하고 나면, 원래 프로그램으로 돌아가거나 프로그램을 종료하는 결과가 된다.인터럽트, 트랩, 오류, 중단 네 가지로 구성된다. 인터럽트인터럽트는 비동기적이다. 다시 말해 현재 실행 중인 명령어와는 상관없이, 프로세서 외부의 I/O 장치 등에서 보내는 신호 때문에 발생한다. 키보드와 마우스도 흔한 인터럽트 신호 중 하나이다.인터럽트가 발생하면, CPU는 현재 하던 일을 잠시 멈추고 운영체제 내의 인터럽트 처리 루틴으로 점프해서 해당 입력을 처리한다. 그리고 처리가 끝나면, 원래 하던 ..
경매 시스템의 정수는 내가 사고 싶었던 물건을 누가 먼저 사가는것이다. 대체 이런 걸 시연으로 어떻게 만드나 고민이 많지만 우선은 적절히 만들어보자. 지금은 뻥카서버를 기반으로 동시성을 논하지만 후에는 실제 지연시간 기반으로 작동 될 수 있는 형태를 만들 것이다.. 꼭..2025.10.19 - [구현하기/Unity] - 경매 시스템 구현 #1 경매 시스템 구현 #1Arena Breakdown이나 로스트아크에서 다루는 경매장 시스템을 만들면 동시성 처리에 대한 역량도 만들고 또 특유의 복잡한 인터페이스 구현에서 역량을 낼 수 있을 것이라고 기대함. 바로 해보는거hyeonistic.tistory.com 필드에 버튼 하나를 생성하고 이름은 뭐 알아서 지어주면 된다. 버튼을 누를 때 다른 사람이 물건을 사가는 ..
이전 글은 일종의 작은 모델을 다룬 느낌이고, 실질적으론 어떻냐를 다루기 위해 마련했다. 선행 글 읽고 오길 기대한다.2025.10.20 - [컴퓨터 이론/CS:APP] - 링커 다루기 [CSAPP Chapter 7] 링커 다루기 [CSAPP Chap 7]우리가 C언어로 hello.c 같은 소스 코드를 작성하고 터미널에서 gcc -o hello hello.c 명령을 내리면, hello라는 실행 파일이 만들어진다.하지만 이 간단한 명령어 뒤에는 사실 네 가지 단계가 숨어있는데hyeonistic.tistory.com GOT/PLTmain.o를 컴파일할 땐 printf의 주소를 전혀 모른다.동적 링킹을 사용하면 프로그램이 실행될 때조차 printf가 담긴 공유 라이브러리(libc.so)가 메모리의 어디에 로드..