내가 알기로 x86 인스트럭션중에 하드디스크에 데이터를 직접 읽고 쓸 수 있는 기능이 있는걸로 알고있음 정말 옛날 컴퓨터들의 backward compatibility를 위해 아직도 존재하는걸로 아는데 정확힌 모르겠다. 아마도 하드디스크 -> CPU 레지스터에 데이터 바로 꽂을 수 있을거임
cc(121.163)2015-04-02 04:28
운영체제 MS-DOS에서 돌잔아
ㅁㄴㅇㅁㄴ(220.70)2015-04-02 04:28
CC야 고맙다. 도움이 되는 답변이었어
ㅁㄴㅇㅁㄴ(220.70)2015-04-02 04:29
운영체제는 MS-DOS에서 도는게 아니라 MS-DOS가 운영체제임. 운영체제가 굳이 어디 "위에서"돌고 있는지 따지자면 램 위에서 돌고있다고 할 수 있음. 근데 이거도 운영체제 영역의 일부가 하드디스크에 스왑되있다면 하드디스크 위에도 걸쳐서 돌고 있다고 말해도 되는거라...
cc(121.163)2015-04-02 04:48
일단 인텔 CPU 기준으로 원초적인 방법으로 하드디스크와 통신을 한다고 하면 IN, OUT 명령을 써서 하드웨어 포트로 1바이트씩 데이터를 하드디스크와 주고 받아야 하는데 이게 위에서 Sexy가 말했던 PIO(Programmed I/O)임. CPU 내부에 하드웨어 포트 입출력용 내부 버퍼가 존재할 뿐 레지스터는 존재하지 않지. 서로 읽어가서 버퍼를 비우거나 버퍼에 데이터를 쓸 뿐. 근데 하드디스크와 통신을 하는 방법이 매우 까다로워서 그 이후에 등장한게 BIOS에서 제공해주는 Interrupt를 이용한 Disk I/O 방식인데 PIO나 인터럽트나 둘 다 CPU 명령어를 이용하기 때문에 CPU가 관여를 한다고 본다. 이후에 DMA(Direct Memory Access)라고
ㅅㅅㅅ(125.128)2015-04-02 13:53
CPU가 하드디스크한테 램 일부 공간을 버퍼로 쓰겠다고 메시지만 보내고 하드디스크는 요청된 I/O 결과를 지정된 램 공간에 바로 올려놓는 이런 방식이 나왔고 지금까지도 계속 쓰이고 있는데 이게 DMA이고 비단 하드디스크 뿐 아니라 랜 카드, 그래픽 카드 등 다른 장치들도 이 방식을 쓴다. I/O 결과를 CPU가 기다리지 않아도 돼서 CPU의 작업 효율이 극대화되기 때문이지. 따라서 이 방법은 CPU는 최소한만 관여를 한다고 보면 된다.
운영체제가 어디서 도는데 등신아
내가 알기로 x86 인스트럭션중에 하드디스크에 데이터를 직접 읽고 쓸 수 있는 기능이 있는걸로 알고있음 정말 옛날 컴퓨터들의 backward compatibility를 위해 아직도 존재하는걸로 아는데 정확힌 모르겠다. 아마도 하드디스크 -> CPU 레지스터에 데이터 바로 꽂을 수 있을거임
운영체제 MS-DOS에서 돌잔아
CC야 고맙다. 도움이 되는 답변이었어
운영체제는 MS-DOS에서 도는게 아니라 MS-DOS가 운영체제임. 운영체제가 굳이 어디 "위에서"돌고 있는지 따지자면 램 위에서 돌고있다고 할 수 있음. 근데 이거도 운영체제 영역의 일부가 하드디스크에 스왑되있다면 하드디스크 위에도 걸쳐서 돌고 있다고 말해도 되는거라...
일단 인텔 CPU 기준으로 원초적인 방법으로 하드디스크와 통신을 한다고 하면 IN, OUT 명령을 써서 하드웨어 포트로 1바이트씩 데이터를 하드디스크와 주고 받아야 하는데 이게 위에서 Sexy가 말했던 PIO(Programmed I/O)임. CPU 내부에 하드웨어 포트 입출력용 내부 버퍼가 존재할 뿐 레지스터는 존재하지 않지. 서로 읽어가서 버퍼를 비우거나 버퍼에 데이터를 쓸 뿐. 근데 하드디스크와 통신을 하는 방법이 매우 까다로워서 그 이후에 등장한게 BIOS에서 제공해주는 Interrupt를 이용한 Disk I/O 방식인데 PIO나 인터럽트나 둘 다 CPU 명령어를 이용하기 때문에 CPU가 관여를 한다고 본다. 이후에 DMA(Direct Memory Access)라고
CPU가 하드디스크한테 램 일부 공간을 버퍼로 쓰겠다고 메시지만 보내고 하드디스크는 요청된 I/O 결과를 지정된 램 공간에 바로 올려놓는 이런 방식이 나왔고 지금까지도 계속 쓰이고 있는데 이게 DMA이고 비단 하드디스크 뿐 아니라 랜 카드, 그래픽 카드 등 다른 장치들도 이 방식을 쓴다. I/O 결과를 CPU가 기다리지 않아도 돼서 CPU의 작업 효율이 극대화되기 때문이지. 따라서 이 방법은 CPU는 최소한만 관여를 한다고 보면 된다.