목록인프런 (70)
개발자는 기록이 답이다
프로세스(process) 컴퓨터의 메모리에 올라와 실행되고 있는 프로그램, task와 같은 의미로 쓰입니다. 하나의 스레드로 이루어진 싱글스레드 프로세스, 여러개의 스레드로 이루어진 멀티스레드 프로세스로 나뉩니다. 스레드(thread) 프로세스 내 작업의 흐름을 지칭합니다. 프로세스와 스레드의 차이 1.프로세스는 코드, 데이터, 스택, 힙 메모리 영역을 기반으로 작업하는 반면 스레드는 프로세스 내의 스택 메모리를 제외한 다른 메모리 영역을 프로세스 내의 다른 스레드들과 공유하기 때문에 메모리적 이점이 있습니다. 2.프로세스는 다른 프로세스와 격리되어있기 때문에 서로 통신을 하기 위해서는 IPC를 사용해야 하지만 스레드는 다른 스레드와 서로 격리되어있지 않으므로 그냥 통신할 수 있으므로 프로세스보다 더 빠..
스와핑이 일어날 때 페이지교체 알고리즘(page replacement algorithm)에 의해 페이지가 교체되게 됩니다. 오프라인알고리즘 오프라인알고리즘은 가장 좋은 알고리즘(스와핑이 적게 일어남)이라고 일컫는 알고리즘이며 이는 가장 먼 미래에 참조되는 페이지와 현재의 페이지를 바꾸는 알고리즘(LFD, Longest Forward Distance)입니다. 예를 들어 0, 1, 2, 3, 4, 2 이렇게 들어온다고 가정하면 가장 미래에 참조되는 2와 스와핑하는 것을 말합니다. 그러나 미래에 사용되는 프로세스를 우리는 알지 못합니다. 즉, 사용할 수 없는 알고리즘이지만 다른 알고리즘과의 성능비교에 대한 상한선을 제공합니다. 오늘 : word → ppt → 게임 했다고 해서 내일도 이런 순서대로 하는건 아니..
메모리계층 메모리도 그냥 메모리만 있는게 아니라 계층적으로 이루어져 있습니다. 메모리 계층(memory hierarchy)은 레지스터, 캐시, 주기억장치, 보조기억장치로 구성되어 있습니다 레지스터:CPU내의작은메모리,휘발성,속도가장빠름,기억용량이가장적음. 캐시: CPU내의 L1, L2 캐시를 지칭합니다. 휘발성, 속도 빠름, 기억 용량이 적음. 주기억장치: RAM을 가리킵니다. 휘발성, 속도 보통, 기억 용량이 보통 보조기억장치: HDD, SSD를 일컬으며 비휘발성, 속도 낮음, 기억 용량이 많습니다. 계층이 존재하는 이유 1. 더 빠른 접근과 처리속도가 증가 우리는 보통 많이 쓰는 것을 다시 많이 씁니다. 이 때문에 특정 데이터에 많이 접근하게 되는데 좀 더 작은 캐시 메모리에 해당 데이터가 있다면 더..
시스템콜 시스템콜이란 운영체제가 커널에 접근하기 위한 인터페이스이며 유저 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할 때 이를 거쳐서 호출하도록 설계되어있습니다. 프로세스 관리(생성, 삭제 등), 파일관리, 디바이스 관리, 시간 및 날짜 관련 시스템, 프로세스 간 통신 때 이를 통해 커널함수를 호출합니다. 예를 들어 프로세스를 종료하는 kill()이라는 함수가 있습니다. 이 함수를 발동시키면 시스템콜을 거쳐서 커널함수가 호출되게 됩니다. 시스템 콜의 과정 만약 유저프로그램이 I/O 요청을 위한 트랩을 발동했다고 하면 다음과 같은 과정이 발생됩니다 유저 프로그램이 I/O 요청 트랩발동합니다. 올바른 I/O 요청인지 확인합니다. 유저 모드가 시스템콜을 통해 커널모드로 변환합니다. 이후 커널함..