«operating-systems» 태그된 질문

하드웨어와 응용 프로그램간에 인터페이스하는 소프트웨어 원칙에 대한 질문



7
프로그램을 열 때 운영 체제가 자체 기계 코드를 삽입합니까?
CPU를 연구하고 있는데 메모리에서 프로그램을 읽고 명령을 실행하는 방법을 알고 있습니다. 또한 OS는 프로세스에서 프로그램을 분리 한 다음 각 프로그램을 너무 빨리 번갈아 실행하여 동시에 실행되고 있다고 생각하지만 실제로는 각 프로그램이 CPU에서 단독으로 실행됩니다. 그러나 OS가 CPU에서 실행되는 많은 코드 인 경우 프로세스를 어떻게 관리 할 수 ​​있습니까? 내가 생각하고 …

6
요소를 반복하지 않고 한 쌍의 세트에서 조합 생성
한 쌍의 세트가 있습니다. 각 쌍은 x, y가 범위의 정수에 속하도록 (x, y) 형식 [0,n)입니다. 따라서 n이 4이면 다음 쌍이 있습니다. (0,1) (0,2) (0,3) (1,2) (1,3) (2,3) 이미 쌍이 있습니다. 이제 n/2정수를 반복하지 않도록 쌍을 사용하여 조합을 만들어야합니다 (즉, 각 정수는 적어도 마지막 조합에서 한 번 이상 나타납니다). 다음은 더 …

7
유닉스 / C의 불일치와 불완전 성의 예는 무엇입니까?
리차드 가브리엘 (Richard Gabriel)의 유명한 에세이 The Rise of Worse는 더 낫다 . 그는 Unix가 인터페이스의 단순성보다 구현의 단순성을 우선시한다고 주장하기 위해 "PC 실패자 문제"( Josh Haberman의 다른 곳에서 논의) 의 예를 제시합니다 . 내가 생각해 낸 또 다른 예는 숫자에 대한 다른 접근법입니다. Lisp는 임의로 많은 수 (메모리 크기까지)를 …

4
어떤 스레드가 일반적으로 공유됩니까?
이것이 일반적인 질문입니다. 누구나 구현을 구체적으로 만들고 싶다면 유닉스 관련 것들을 선호합니다. 그러나 먼저 다음과 같은 일반적인 문제를 알아야합니다. 단일 프로세스에 여러 스레드가있을 수 있다고 읽었습니다. 동일한 프로세스의 여러 스레드가 서로 공유합니다. 나는 그들이 무엇을 공유하고 무엇을 알고 싶어요. 프로세스가 주소 공간, 스택, 힙, 전역 변수, 코드, 데이터, OS 리소스로 …

2
운영 체제는 어떻게 랜덤 시드에 대한 엔트로피를 생성합니까?
Linux에서 파일 /dev/random과/dev/urandom 파일은 의사 임의 바이트의 차단 및 비 차단 소스입니다. 일반 파일로 읽을 수 있습니다. $ hexdump /dev/random 0000000 28eb d9e7 44bb 1ac9 d06f b943 f904 8ffa 0000010 5652 1f08 ccb8 9ee2 d85c 7c6b ddb2 bcbe 0000020 f841 bd90 9e7c 5be2 eecc e395 5971 ab7f 0000030 864f d402 …

4
협업 스케줄링이 I / O 조작을 수행 할 때 프로세스를 일시 중단합니까?
많은 운영 체제 참조에 따르면 (선점 형이 아닌) 협력적인 멀티 태스킹을 사용하면 프로세스가 CPU를 명시 적으로 자발적으로 일시 중단 할 때까지 유지합니다. 실행중인 프로세스가 즉시 만족할 수없는 I / O 요청을 수행하는 경우 (예 : 아직 사용할 수없는 키 입력을 요청하는 경우) 스케줄러가 일시 중단하거나 요청을 처리 할 수있을 때까지 …

3
일정한 시간 작업으로 영리한 메모리 관리?
고정 크기 블록과 관련된 두 가지 기본 메모리 할당 작업을 수행 할 수있는 메모리 세그먼트 (필요한 경우 파일과 같이 크기가 커지거나 줄어들 수 있음)를 고려해 보겠습니다. 하나의 블록 할당 더 이상 사용되지 않는 이전에 할당 된 블록을 해제합니다. 또한 필요에 따라 메모리 관리 시스템은 현재 할당 된 블록을 이동할 수 …

4
운영 체제가 관리하는 칩과 동일한 칩에서 어떻게 운영 할 수 있습니까?
운영 체제 (위키 백과, 기술 사이트 등의 기본 자료 읽기)에 대한 필독에서 운영 체제는 프로그램과 응용 프로그램이 효율적이고 안전하게 하드웨어와 상호 작용할 수있는 프로그램이라는 것을 배웠습니다. 그러나 운영 체제가 컴퓨터를 작동해야 할 때 컴퓨터 작동을 감독하는 방법에 대해서는 혼란 스럽습니다. 무슨 뜻이야? 글쎄, 운영 체제가 작동한다고 상상하는 방법은 컴퓨터에 두 …

3
"소프트"실시간 운영 체제가 실제로 제공하는 보장
"하드"실시간 운영 체제가 무엇인지 알고 있습니다. 응용 프로그램 프로그래머와 계약을 제공하는 스케줄러가있는 운영 체제입니다. 응용 프로그램은 각 자원 할당 요청에 대한 기한을 제공합니다. 경우 마감일 요청이 가능 , 스케줄러는 각 자원 마감일 전에 요청하는 응용 프로그램에 할당됩니다 보장합니다. 애플리케이션 프로그래머가 특정 요청의 최대 대기 시간 및 최소 처리량을 추론 할 …

2
마이크로 커널 대 모 놀리 식 커널의 성능
마이크로 커널은 모든 드라이버를 사용자 공간 프로그램으로 구현하고 커널 자체에서 IPC와 같은 핵심 기능을 구현합니다. 그러나 모 놀리 식 커널은 드라이버를 커널의 일부로 구현합니다 (예 : 커널 모드에서 실행). 마이크로 커널은 사용자 공간에서 드라이버 간 메시지 전달을 처리해야하기 때문에 단일 커널보다 느리다는 주장을 읽었습니다. 이것이 사실입니까? 하드웨어가 너무 느려서 마이크로 …

2
관리되는 코드를 실행하는 최소한의 커널을 갖는 잠재적 인 함정은 무엇입니까?
관리 코드 인터프리터 / 런타임으로 작동하는 매우 작은 기본 하위 커널과 비원시 기계 언어 (Java 바이트 코드, CIL 등)로 컴파일 된 더 큰 상위 커널을 기반으로 운영 체제를 구축하려고한다고 가정합니다. 유사한 운영 체제의 예로는 Singularity 및 Cosmos가 있습니다. 순수 네이티브 솔루션과 달리 이러한 종류의 인프라로 OS를 작성하는 데 어떤 함정과 …

6
구간에서 두 숫자의 최대 XOR 찾기 : 이차보다 더 잘 할 수 있습니까?
두 개의 숫자 과 r 이 주어지고 l ≤ i에 대해 max ( i ⊕ j ) 를 찾고 싶다고 가정 해 봅시다 .lllrrrmax(i⊕j)max(i⊕j)\max{(i\oplus j)} .l≤i,j≤rl≤i,j≤rl\le i,\,j\le r 순진한 알고리즘은 단순히 모든 가능한 쌍을 확인합니다. 예를 들어 루비에는 다음이 있습니다. def max_xor(l, r) max = 0 (l..r).each do |i| (i..r).each …

1
OS의 메모리 벌룬
일부 하이퍼 바이저는 벌룬 (ballooning)이라고하는 방법 (최소한 KVM이 호출하는 방식)을 사용하여 메모리 사용을 최적화합니다.이 방법은 VM간에 메모리를 중복 제거하고 쓰기시 복사시 공통 페이지를 읽기 전용으로 설정합니다. 이것은 포크 호출의 반대입니다. 프로세스를 위해 OS 수준에서 구현하는 것이 가능합니까 (동일한 사이트에서 여러 탭이있는 Chromium으로 탐색 할 때 주로 메모리 복제를 생각하고 있었음) …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.