0. 들어가기전 동기/비동기 와 블로킹/논블로킹 의 개념은 비슷해 보일지라도 서로 다른 차원에서 작업의 수행 방식을 설명하는 개념이다. 동기/비동기 : 처리해야 할 작업들을 수행 방식(완료 여부)의 차이 블로킹/논블로킹 : 처리해야할 작업의 과정의 제어권 처리 방법의 차이 그렇기 때문에 동기 != 블로킹, 비동기 != 논블로킹 이다. 1. 동기(Sync) vs 비동기(Async) 동기와 비동기를 구분하는 방법은 처리해야 할 작업들에 대한 작업 순서 처리의 차이이다 . 요청한 작업에 대해 완료 여부를 따져 순차대로 처리한다면 동기, 요청한 작업에 대해 완료 여부를 따지지 않는다면 비동기이다. 1. 동기 호출된 작업의 리턴하는 시간과 결과를 반환하는 시간이 일치하는 경우를 말한다. 작업 A의 종료시간과 작업..
👩🏫 : "프로세스와 스레드의 차이점에 대해 설명해주세요." 🙋🏻♀️ : "..." 면접 단골 질문 프로세스와 스레드의 차이점에 대해 알아보자!!!!!! 0. 들어가기 전 브라우저를 웹서핑하다가 마음에 드는 게임을 찾았다! 오잉? 다운로드 버튼을 눌렀더니 갑자기 마우스도 안 움직이고 키보드도 안 먹힌다..;; 몇 분에 걸쳐 이 게임이 다 받아질 때까지 컴퓨터가 먹통이 되어 있는 거다.. ㅜ 뭔 이딴 컴퓨터가 다 있냐?! 라고 생각할 수 있겠지만, 옛날 컴퓨터들은 다 이런 식으로 작동했다. 게임을 다운로드 하는 작업, 마우스나 키보드로부터 입력을 받는 작업, 브라우저로 사이트를 돌아다니는 작업 과 같은 일들을 동시에 처리하지 못하고 한 번에 하나씩만 할 수 있었다. 컴퓨터가 프로세스 여러개를 함께 돌리..
1. 디스크의 구조 💡 디스크란? -> 컴퓨터 시스템의 대표적인 2차저장장치(보조기억장치)이다. 메모리는 휘발성 저장장치이므로 전원이 나가면 내용이 모두 사라지기 때문에 작업의 결과를 영구히 보관하기 위해서는 디스크 같은 2차 저장장치를 이용해야 한다. 하드 디스크의 구조는 위 그림과 같다. 더보기 플래터(Platter): 하드 디스크의 주요 구성 요소로, 회전하는 원판 형태, 데이터는 플래터의 표면에 저장 헤드(Head): 플래터 위의 데이터를 읽고 쓰는 역할, 헤드는 플래터의 표면에서 몇 나노미터 이내의 거리에 위치하며, 이러한 거리를 위해 공기 역학적인 방식으로 작동 암(Arm): 헤드를 지지하는 부분으로, 암은 헤드를 이동시켜 다양한 위치에 있는 데이터에 액세스할 수 있도록 한다. 스파인들(Spi..
💡 CPU 스케쥴링(CPU Scheduling)이란? : OS가 CPU를 사용하는 프로세스들 사이의 우선순위를 관리하는 작업이다. 즉 한정된 자원을 어떤 프로세스에 얼마나 할당하는지 정책을 만드는 것이다. 1. 스케쥴링 기준(Scheduling Criteria) 스케쥴링 기준은 최선의 알고리즘을 결정하는 데에 사용되는 기준이다. 중국집을 예를 들어 스케쥴링 기준에 대해 알아보자. CPU 이용률 (CPU Utilization) CPU를 가능한한 바쁘게 유지 주방장 - 돈을 주고 고용했는데, 주방장에게 최대한 일을 많이 줘야 돈이 아깝지 않다. 처리량 (Throughput) 단위 시간당 완료된 프로세스의 개수 회전율 - 식당에서 단위 시간당 손님을 몇명이나 내보낼 수 있는지에 대한 척도 총 처리 시간 (Tu..
1. 컴퓨터 시스템 구조 컴퓨터는 프로그램 코드들을 정해진 순서대로 실행한다. 이 과정에서 데이터를 읽고(Read), 처리(Processing)하고, 저장(Store)한다. 컴퓨터 시스템 구조는 크게 두 가지로 분류된다. Computer I/O device (입출력장치) 입출력 장치를 통해서 사용자가 원하는 데이터를 컴퓨터로 전달하면, 컴퓨터는 그 데이터를 가공을 한다. 가공된 데이터는 다시 입출력 장치를 통해 출력된다. 컴퓨터의 구성 요소 CPU : 메모리로부터 명령어를 받아와 기계어로 변환하고 연산을 수행한다. Memory : 명령어 및 데이터가 적재되는 공간이다. I/O device : 데이터를 입출력하기 위한 컴퓨터의 외부 장치이다. 컴퓨터 시스템 흐름 다음은 대략적인 컴퓨터 시스템 흐름이다. 컴..