스택(stack)에 넣어질(push) 수 있고, 운영체제에 의해 꺼내진다(pop off). 일부 운영체제는 블록이나 스택 방법을 선호하는데, 이들 접근법은 전달되는 매개변수들 의 개수나 길이를 제한하지 않기 때문이다.
- 스택은 가장 최근에 추가된 데이터가 가장 먼저 제거되는 선입선출(LIFO) 데이터 구조입니다. 프로그램이 함수를 호출하면 프로세서는 함수 매개변수와 반환 주소를 스택에 푸시합니다. 그런 다음 함수는 스택을 사용하여 로컬 변수와 중간 결과를 저장합니다. 함수가 반환되면 프로세서는 반환 주소와 함수의 로컬 변수를 스택에서 꺼냅니다.
- Stack 영역에 스택은 인터럽트와 예외를 관리하는 데도 사용됩니다. 인터럽트 또는 예외가 발생하면 프로세서는 현재 프로그램 카운터와 프로세서 상태를 스택으로 푸시하고 인터럽트 또는 예외 처리기로 이동합니다. 그런 다음 핸들러는 스택을 사용하여 중단된 프로그램의 컨텍스트를 저장하고 중단 또는 예외가 처리된 후 복원합니다
Stack Implementation in Operating System uses by Processor - GeeksforGeeks
메시지 전달은 소량의 데이터를 교환할 때 유용한데, 이는 피해야 할 충돌이 없기 때문이다. 가 잘 이해가 안되요
- 피해야 할 충돌이란?
- 공유 메모리 방식에서는 공유되는 데이터를 보호하고 동기화를 해야한다.
- 메시지 전달 방식에서의 오버헤드 발생 요인
- 메시지 전달 기법은 커널의 중계를 통해서 전달되기 때문에 System Call 을 불러야 한다.
- 전달하는 프로세스에게 데이터를 복사해줘야 한다.
- 소량의 데이터가 적합한 이유
- 공유 메모리 방식은 메모리의 전송 속도로 수행할 수 있기에 대량의 데이터에 적합하지만 메시지 전달 방식은 공유 메모리 방식에 비해 속도가 더 느리다.
System call 로 I/O Device 에 요청을 보내고 나서 어떻게 다시 CPU 가 프로그램 코드로 돌아가서 수행하는가?
일반적으로 I/O 작업 대기 상태에서 어떤 작업을 수행할지를 결정하는 데에는 인터럽트가 직접적으로 관여하지 않습니다.
ABI 가 무엇인가??
- ABI 는 두 개의 바이너리 프로그램 모듈 간의 인터페이스를 뜻한다. ( 위키 )
- 이진 코드의 여러 구성요소가 주어진 아키텍처에서 특정 운영체제와 상호 작용할 수 있는 방법을 정의하는 인터페이스이다. ( 책 )
- 이진 실행 파일이 특정 ABI에 따라 컴파일되고 링크된 경우 해당ABI 를 지원하는 다른 시스템에서 실행될 수 있어야 한다. ( 책 )
device driver 가 무엇인가??
- 운영체제가 디바이스를 처리하기 위한 인터페이스에 맞게 접근할 수 있도록 하는 소프트 웨어