0

전 Computer Architecture and Design을 처음 사용했습니다. 제 질문은 높은 수준의 프로그램이었습니다. 명령어 세트는 CPU에서 차례로 실행됩니다. 이 명령어를 실행할 때 오버 헤드로 운영 체제 명령어도 포함됩니까? 예 : 2GHz 프로세서의 경우 2 * 10^9 명령이 2 * 10^9 클럭 사이클에서 실행될 수 있습니다. 그런 다음 운영 체제는 항상 초당 약 1 * 10^9 명령을 실행합니다. 이 오버 헤드가 항상 존재하며 다른 사용자 정의 된 예약 된 프로그램을 실행하기 위해 다른 1 * 10^9 명령 만 실행할 수 있습니다.운영 체제에 대한 초 당 지침

운영 체제가 항상 실행하는 명령어가 적어야 실행될 다른 프로그램을 더 수용 할 수 있습니까?

+0

당신의 질문은 이해가되지 않습니다. OS는 스케줄링 작업을 수행하고 하드웨어 인터럽트를 제공하며 사용자 코드가 제공하는 명령을 수행합니다. 고정 된 CPU 시간을 사용하지 않으며 분명히 낭비하지 않습니다. – ruslik

+1

충분히 단순한 CPU에서, 아마도. 하지만 일반적으로 퍼포먼스는 당신이하는 것처럼 간단하지 않다고 생각합니다. 캐시, 가상 메모리, 공유 라이브러리, 스케줄링, I/O 등이 있습니다. 예를 들어 OS가 몇 가지 지침을 사용하여 프로세스간에 공유되는 libc의 단일 복사본을 유지하고 libc의 핫 기능이 내 프로그램보다 먼저 L2 캐시에있는 경우 시작, 그 자체를 쉽게 지불 할 수 있습니다. – Ken

답변

1

두 질문에 모두 해당됩니다.

예, OS가 1e9 명령/초를 사용하는 경우 첫 번째 명령은 1e9 만 남았습니다.

두 번째로 가능한 한 줄이고 싶습니다. 그것은 "오버 헤드"라고합니다.

"제한 사항"은 OS가 좋은 일을한다는 것입니다. 예를 들어 miltitasking을 고려해보십시오. OS에서 여러 프로그램을 동시에 실행하고 프로세서를 공유 할 수 있습니다. 한편으로는 오버 헤드가 수반됩니다. 다른 한편으로는, 그것 없이는 아무런 프로그램도 실행할 수 없을 때 시스템이 길게 늘어나거나 멀티 태스킹을 스스로 시뮬레이트해야합니다. 적어도 운영 체제만큼 많은 명령을 취해야합니다.

1

마틴 씨의 답변을 조금 더 넓게 보자. (조심하십시오, 매우 간단합니다) OS의 직업은 프로그램이 스스로 처리하기를 원하지 않는 것들을 처리하는 것입니다 - 핸들 I/O 인터럽트를 생성하고 여러 작업을 예약하여 컴퓨터를 공유 할 수 있습니다. 하나의 응용 프로그램을 실행하는 컴퓨터의 완벽한 세계에서 프로그램은 디스크 파일에서 다음 레코드를 읽는 것처럼 OS가 필요한 작업을 수행 할 때까지 CPU를 제어합니다 (계층화 된 '서비스'를 호출하여 알아 내기). 어떤 디스크인지, 어떤 파일인지, 어떤 바이트인지, 어느 디스크 블록을 어느 디스크 블록에서 디스크 컨트롤러로부터 요청하는지 계산하는 전형적인 '실제'머신, 백그라운드 작업이 많이 실행되고, 화면을 업데이트하고, 시계를 읽는다. 새 메일 확인, 패치 다운로드 등이 우선 순위입니다. 일부 작업은 Windows에서 새 메일 알림을 위해 시스템 트레이 아이콘을 업데이트하는 등의 작업이 완료 될 때 상관 없으므로 낮은 우선 순위로 실행됩니다. 다른 작업은 높은 우선 순위로 실행되지만 화면에서 마우스를 따라 포인터를 손으로 바꾸는 것과 같이 매우 짧습니다. 일반적인 작업은 일부 OS 서비스가 필요하기 전에 몇 백 가지 지침 만 수행합니다. 가기 그것이 일어나는 동안 잠을 자고. 대형 응용 프로그램은 수십만 개의 '명령어'를 가질 수 있지만 버튼 누름 또는 키보드 입력에서 다른 머신의 데이터베이스 조회 응답에 이르기까지 또 다른 것을 기다리는 시간을 소비합니다. Pi를 백만 단위로 계산하는 것과 같이 CPU를 많이 사용하는 응용 프로그램은 오랜 기간 동안 프로세서의 99.9 %를 사용할 수 있지만, OS는 다른 작업을 수행해야하는지 정기적으로 인터럽트하려고합니다. DOS (1980 년대)로 돌아 가면 프로그램은 누가 실제로 CPU를 사용할 수 있지만 화면에 읽거나 쓸 필요가 있거나 뭔가를 입력해야한다면 BIOS 이 기본적인 작업을 수행하도록 작성되었습니다. 이 중 일부는 컴퓨터 게임이 반응하는 방식이며, 화면을 직접 수정하고 키보드 또는 마우스 장치 버퍼에서 직접 읽은 다음 OS를 우회하는 데 필요한 특정 작업을 수행합니다. 잘하면, 나는 당신을 더 혼동하지 않았습니다 ...

관련 문제