본문 바로가기

프로그래밍/운영체제10

데이터 전송 명령어(data transfer instruction) 정리 데이터 전송 방법 메모리에서 레지스터 레지스터에서 메모리 레지스터에서 레지스터 데이터 전송 명령 테이블 데이터 전송 명령 타입들 LOAD LOAD 명령의 기호(니모닉)는 LD LOAD 명령의 예 LD AX, BX 설명 : 원본에서 도착지로 로드한다. 위의 예제로 보면 AX는 도착지이며 BX는 원본이다. LOAD 명령 전에는 AX = 3, BX = 5이며 LOAD 명령 실행 이후에는 AX = 5, BX = 5가 된다. STORE STORE 명령의 기호(니모닉)는 ST STORE 명령의 예 ST AX, BX 설명 : 원본의 값을 저장해서 이를 도착지에 둔다. 위의 예제로 보면 AX는 도착지 BX는 원본일 때 STORE를 실행하면 AX=BX가 된다. MOVE MOVE 명령의 기호(니모닉)는 MOV MOVE 명.. 2023. 6. 30.
데이터 전송 명령이란? 데이터 전송 명령 데이터 전송이란 레지스터와 레지스터, 레지스터와 메모리 사이에서 데이터를 주고받는 연산을 의미한다. 여기에서 레지스터와 메모리를 잘 구분하는 것이 중요하다. 레지스터와 메모리 모두 기억장치라는 점에서 동일하지만 속도와 크기 면에서는 꽤 차이가 있다. 우리가 사용하는 범용 컴퓨터는 CPU와 메인 메모리가 분리되어 있는 폰노이만 구조를 채택하고 있다는 사실을 기억해야한다. * 폰노이만 구조 : 프로그램, 즉 수행하고자 하는 명령어들의 집합을 기억장치에 저장해 두었다가 처리장치(프로세서)가 그것을 읽어서 처리하는 구조(프로그램 내장 방식)를 가리킨다. 메모리는 CPU가 직접 접근할 수 있는 유일한 저장장치이다. 프로그램이 실행되기 위해서 프로그램은 반드시 메모리 위에 올라와(load) 있어야.. 2023. 6. 28.
유저 모드와 커널 모드 유저 모드(사용자 모드)와 커널 모드 보통 운영체제는 유저 모드와 커널 모드 두 가지 프로세서 접근 모드를 지원한다. 애플리케이션은 유저 모드에서 실행되고 핵심 운영 체제 구성 요소는 커널 모드에서 실행된다. 많은 드라이버가 커널 모드로 실행되지만 일부 드라이버는 유저 모드에서 실행될 수 있다. 사용자가 직접적으로 하드웨어 장치를 제어한다면 큰 문제가 발생할 수 있기 때문에 사용자 애플리케이션은 System Call을 통해 하드웨어 요청이나 중요한 시스템 요청을 진행한다. 요청을 하면 유저 애플리케이션은 유저 모드에서 커널모드로 잠시 전환되었다가 커널모드에서 작업을 실행한 뒤 응답을 유저 애플리케이션으로 반환한다. 유저 모드 프라이빗 가상 주소 공간과 프라이빗 핸들 테이블을 애플리케이션에 제공 가상 주소.. 2023. 6. 27.
메모리 구조(Memory Structure)에 대해서 메모리 구조 우리가 exe 파일을 실행하면 운영체제는 프로그램에 정의된 명령어(코드)를 바탕으로 메모리에 프로세스를 적재한다. 해당 프로세스를 위한 Code, Data, Heap, Stack 영역이 생성된다. 메모리 구조 코드 영역 데이터 영역 힙 영역 스택 영역 코드 영역 (Code) 소스코드가 기계어 형태로 저장된다 CPU가 저장된 명령어를 프로그램 카운터에 의해 하나씩 가져가 처리하게 된다. 프로그램 시작부터 종료까지 메모리에 있게 된다. 컴파일 타임에 결정되고, 중간에 코드가 변경되지 않도록 Read-Only 형태로 저장된다. 데이터 영역 (Data) 전역변수, static 변수가 저장된다. 프로그램 시작과 동시에 할당되고 프로그램이 종료되어야 메모리가 해제된다. 실행 도중 변수 값이 변경될 수 .. 2023. 2. 17.