본문 바로가기

computer science/운영체제13

[운영체제] 메모리 관리 logical address vs physical address 1. Logical address(= virtual address) 각 프로세스마다 독립적으로 가지는 주소공간으로 주소가 0부터 시작하여 CPU가 보는 주소는 logical address임 2. Physical adddress 물리 메모리에 실제 올라가는 위치 ※ 주소 바인딩 각 프로세스마다 0번지부터 시작하는데 물리 메모리에 올리기 위해서는 주소가 바뀌게 되는데 이렇게 이렇게 logical address를 physical address로 바꾸는 과정을 거침 logical address는 physical address로 언제 바뀌는가 ? 1. Compile time binding physical address가 컴파일 시 결정되며 시작 위치.. 2020. 4. 27.
[운영체제] Deadlock 다중 프로그래밍 시스템에서 여러 프로세스들이 서로 얽혀서 돌아가는데 자칫 프로세스들 간에 꼬이는 경우가 발생합니다. 이렇게 꼬이는 현상을 Deadlock이라고 하는데요 Deadlock이 왜 발생하고 언제, 또 어떻게 해결할 수 있는 이번 시간에 알아 보겠습니다. Deadlock 위의 그림을 Deadlock을 잘 설명해주고 있는 사진 입니다. 도로에 있는 모든 차들은 앞으로 가야 하지만 다른 차가 자신의 진행방향을 막고 있어 앞으로 가지 못합니다. 한마디로 아무도 움직일 수 없는 상황인데요, 먼저 뒤로 후진하지 않으면 이런 상황은 절대 풀리지 않을 것입니다. Deadlock은 일련의 프로세스가 자신의 자원을 점유하면서 다른 프로세스가 점유한 자원을 기다리면서 block된 상태를 의미합니다. 여기서 자원은 .. 2020. 4. 27.
[운영체제] 프로세스 동기화 이번 시간에는 프로세스 동기화에 대해 공부해 보겠습니다. 다중 프로그래밍 환경에서는 여러개의 프로세스가 cpu를 차지하기 위해 경쟁하며 각 프로세스는 경우에 따라 다른 프로세스와 데이터를 공유할 수 있습니다. 이렇게 여러 프로세스가 하나의 데이터를 같이 사용하는 경우 해당 데이터에 대한 동기화 처리가 필요합니다. 그래야만 각 프로세스가 사용하는 공유 데이터에 대한 무결성이 보장되기 때문이죠. 데이터의 접근 컴퓨터 시스템에서 데이터에 접근하는 패턴은 위와 같습니다. 먼저 데이터가 저장되어 있는 곳에서 데이터를 읽어와 cpu에서 연산을 한 후 다시 데이터를 가져온 곳에 저장합니다. 보통 데이터를 읽기만 하는 경우는 문제가 되지 않습니다. 여러 프로세스가 단지 읽기만 하기 때문에 데이터가 변경되는 경우가 없죠.. 2020. 4. 23.
[운영체제] 시스템 구조와 프로그램 실행 이번 시간에는 시스템 구조와 프로그램 실행에 대해 공부해 보겠습니다. 하나하나 세세하게 설명하기 보다는 컴퓨터 시스템이 어떻게 동작하는지, 여러 프로그램들이 하드웨어 위에서 어떻게 동작하는지에 대해 집중해 보겠습니다. 컴퓨터 시스템 위의 사진은 컴퓨터 시스템의 하드웨어 구조는 간략하게 요악한 것입니다. CPU와 Memory로 구성된 것을 보통 컴퓨터 라고 하며 I/O device의 데이터가 컴퓨터로 들어가는 것은 Input이라고 하며 데이터를 받아 CPU에서 처리 후 다시 I/O device로 나가는 것을 Output이라고 합니다. 위의 사진을 좀 더 자세히 보면 아래와 같이 설명할 수 있습니다. 먼저 Memory는 CPU의 작업공간이며 CPU는 매 clock cycle마다 memory의 instruct.. 2020. 4. 22.