목록CS/운영체제 (2)
영우

프로세스 간 통신은 무엇인가요?프로세스들은 다른 프로세스와 데이터를 공유해야할 수 있습니다. 예를들면 웹 백엔드 서버 프로세스는 사용자의 요청을 처리하기 위해 데이터베이스 프로세스와 통신할 수 있습니다. 혹은 단일 프로세스가 처리하기 힘든 연산을 더 빠르게 처리하기 위해 여러 프로세스가 동시에 연산해 더 빠르게 연산할 수도 있습니다. 이렇게 다른 프로세스와 데이터를 공유하는 프로세스들을 협력적인 프로세스라고 합니다. 당연히 이 프로세스들은 데이터를 교환할 수 있는 장치가 필요하고 이를 IPC(inter process comminication)라고 합니다.IPC 모델은 크게 두가지가 있습니다. 메모리 공간을 공유하는 공유 메모리 모델, 운영체제의 도움을 받아 메시지를 교환하는 메시지 전달 모델입니다.공유 ..

들어가며 C나 C++같은 고급언어로 소스코드를 작성하고, 소스코드를 컴파일해 실행파일을 만들고, 실행파일을 실행해 프로그램을 사용해왔습니다. 이런 과정들이 복잡하게 생각하지 않아도 될 만큼 잘되어있어서 내부적으로 어떤 일을 하는것인지 잘 알지 못했습니다. 오늘은 미지의 세계인 소스코드부터 실행까지 어떤 일이 일어나는지 알아보았습니다.(요람에서 무덤까지를 패러디했습니다. ㅋㅋ..) 전체적인 절차 고급언어로 작성한 소스코드로부터 시작합니다. 이를 컴파일러가 기계어에 보다 가까운 어셈블리어로 만들어 줍니다. 여전히 어셈블리어는 기계어가 아니라서 실행시킬 수 없습니다. 그렇기 때문에 어셈블리 코드를 바탕으로 어셈블러가 이진파일인 목적파일로 만들어줍니다. 그리고 링커가 목적파일들과 외부 라이브러리를 링킹해 하나의..