CPU and I/O Bursts in Program Execution 프로그램은 CPU를 연속적으로 쓰는 단계와 I/O를 하는 단계가 번갈아가면서 실행됨. CPU burst: CPU만 연속적으로 쓰는 단계. I/O burst: I/O를 실행하고 있는 단계. 주로 사람이 interaction하는 프로그램이 중간에 I/O burst가 자주 끼어듦. 프로그램의 종류에 따라 빈도나 길이가 다름. CPU burst Time의 분포 CPU burst가 짧고 중간에 I/O가 많이 끼어드는 job은 빈도가 높음 -> 빨간색 CPU birst가 아주 긴 job은 빈도가 낮음 -> 파란색 컴퓨터 안에는 여러 종류의 job(process)이 섞여있기 때문에 CPU 스케줄링이 필요. I/O bound job은 interac..
프로세스 생성 부모 프로세스(Parent process)가 자식 프로세스(children process)를 생성. => 복제 생성 자식은 부모의 공간을 복사하고(binary and OS data), 그 공간에 새로운 프로그램을 올림 -> 부모의 주소 공간, 운영체제의 자원을 다 복사해놓고 새로운 프로그램을 덮어씌움. 유닉스의 예) fork() 시스템 콜이 새로운 프로세스를 생성 -> 부모를 그대로 복사, 주소 공간 할당 fork 다음에 이어지는 exec() 시스템 콜을 통해 새로운 프로그램을 메모리에 올림 복제하지않고 덮어씌울수도 있으며, 운영체제를 통해서만 프로세스 생성 가능. 하나의 프로세스가 여러 개의 자식 프로세스를 생성할 수 있음 -> 트리(계층 구조) 형성 프로세스는 자원을 필요로 함 -> 운..
프로세스의 개념 "Process is a program in execution" => 프로세스는 실행중인 프로그램을 의미. 프로세스의 문맥(context) 프로그램이 실행되다 언젠간 종료가 될텐데 문맥이라는 것은 중간 어떤 시점에서 잘라놓고 봤을 때 이 프로그램이 무엇을 어떻게 실행했는지, 현재 시점이 어떤 상태에 있는지를 정확하게 나타내기 위해 사용되는 개념. -> 프로세스가 시작되면 독자적인 주소 공간을 생성한다. 이 프로세스가 CPU를 잡게 되면 PC라는 레지스터가 프로세스 코드의 어느 부분을 가리키고 있고, 매 순간 instruction을 읽어 CPU안의 레지스터에 값을 넣고 ALU(연산 장치)에서 연산 후 그 결과를 레지스터 또는 메모리에 저장한다. 이 과정을 계속해서 진행하다가 이 프로세스가 ..
컴퓨터 시스템 구조 아래에 간단하게 설명 Main Memory CPU의 작업 공간 Device controller 해당 I/O 장치유형을 관리하는 일종의 작은 CPU 각 device의 내부를 통제하는 것은 CPU가 아닌 각 device controller의 역할 제어 정보를 위해 control register, status register을 가짐. local buffer 가짐. I/O는 실제 device와 local buffer 사이에서 일어나고, I/O가 끝났을 경우 device controller는 interrupt로 CPU에 그 사실을 알림. 만약 CPU가 instruction을 수행하다가 프로그램이 disk에서 데이터를 읽어와야 하는 경우엔 CPU가 직접 disk에 접근하는 것이 아니라 disk ..
운영체제란? -> 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 운영체제의 역할 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공해준다. 운영체제는 동시 사용자/프로그램들이 각각 독자적 컴퓨터에서 수행되는 것 같은 환상을 제공해준다. 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대신 해준다. 컴퓨터 시스템의 자원(CPU, 메모리, 입출력장치 등)을 효율적으로 관리해준다. -> 주 목적!! 운영체제의 의미 - 좁은 의미: 커널 (운영체제의 핵심 부분으로 메모리에 상주하는 부분) - 넓은 의미: 커널을 포함해서 각종 주변 시스템 유틸리티를 포함한 개념 운영체제의 분류 1. 동시작업 가능 여부 단일 작업 (Single tasking) : 한 번..
- Total
- Today
- Yesterday