CPU and I/O Bursts in Program Execution 프로그램은 CPU를 연속적으로 쓰는 단계와 I/O를 하는 단계가 번갈아가면서 실행됨. CPU burst: CPU만 연속적으로 쓰는 단계. I/O burst: I/O를 실행하고 있는 단계. 주로 사람이 interaction하는 프로그램이 중간에 I/O burst가 자주 끼어듦. 프로그램의 종류에 따라 빈도나 길이가 다름. CPU burst Time의 분포 CPU burst가 짧고 중간에 I/O가 많이 끼어드는 job은 빈도가 높음 -> 빨간색 CPU birst가 아주 긴 job은 빈도가 낮음 -> 파란색 컴퓨터 안에는 여러 종류의 job(process)이 섞여있기 때문에 CPU 스케줄링이 필요. I/O bound job은 interac..
문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소수 오른쪽에만 0이 있고 왼쪽에는 아무것도 없는 경우 0P처럼 소수 왼쪽에만 0이 있고 오른쪽에는 아무것도 없는 경우 P처럼 소수 양쪽에 아무것도 없는 경우 단, P는 각 자릿수에 0을 포함하지 않는 소수입니다. 예를 들어, 101은 P가 될 수 없습니다. 예를 들어, 437674을 3진수로 바꾸면 211020101011입니다. 여기서 찾을 수 있는 조건에 맞는 소수는 왼쪽부터 순서대로 211, 2, 11이 있으며, 총 3개입니다. (211, 2, 11을 k진법으로 보았을 때가 아닌, 10진..
문제 설명 지도개발팀에서 근무하는 제이지는 지도에서 도시 이름을 검색하면 해당 도시와 관련된 맛집 게시물들을 데이터베이스에서 읽어 보여주는 서비스를 개발하고 있다. 이 프로그램의 테스팅 업무를 담당하고 있는 어피치는 서비스를 오픈하기 전 각 로직에 대한 성능 측정을 수행하였는데, 제이지가 작성한 부분 중 데이터베이스에서 게시물을 가져오는 부분의 실행시간이 너무 오래 걸린다는 것을 알게 되었다. 어피치는 제이지에게 해당 로직을 개선하라고 닦달하기 시작하였고, 제이지는 DB 캐시를 적용하여 성능 개선을 시도하고 있지만 캐시 크기를 얼마로 해야 효율적인지 몰라 난감한 상황이다. 어피치에게 시달리는 제이지를 도와, DB 캐시를 적용할 때 캐시 크기에 따른 실행시간 측정 프로그램을 작성하시오. 캐시 크기(cach..
문제 설명 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 "프렌즈4블록". 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙어있을 경우 사라지면서 점수를 얻는 게임이다. 같은 블록은 여러 2×2에 포함될 수 있으며, 지워지는 조건에 만족하는 2×2 모양이 여러 개 있다면 한꺼번에 지워진다. 블록이 지워진 후에 위에 있는 블록이 아래로 떨어져 빈 공간을 채우게 된다. 각 문자는 라이언(R), 무지(M), 어피치(A), 프로도(F), 네오(N), 튜브(T), 제이지(J), 콘(C)을 의미한다. 입력으로 블록의 첫 배치가 주어졌을 때, 지워지는 블록은 모두 몇 개인지 판단하는 프로그램을 제작하라. 입력으로 판의 높이 m, 폭 n과 판의 배치..
프로세스 생성 부모 프로세스(Parent process)가 자식 프로세스(children process)를 생성. => 복제 생성 자식은 부모의 공간을 복사하고(binary and OS data), 그 공간에 새로운 프로그램을 올림 -> 부모의 주소 공간, 운영체제의 자원을 다 복사해놓고 새로운 프로그램을 덮어씌움. 유닉스의 예) fork() 시스템 콜이 새로운 프로세스를 생성 -> 부모를 그대로 복사, 주소 공간 할당 fork 다음에 이어지는 exec() 시스템 콜을 통해 새로운 프로그램을 메모리에 올림 복제하지않고 덮어씌울수도 있으며, 운영체제를 통해서만 프로세스 생성 가능. 하나의 프로세스가 여러 개의 자식 프로세스를 생성할 수 있음 -> 트리(계층 구조) 형성 프로세스는 자원을 필요로 함 -> 운..
- Total
- Today
- Yesterday