운영체제

· CS/OS
프로그램이 실행이 되면 어떤 프로그램이든 간에 CPU burst와 I/O burst가 번갈아가며 실행이 됩니다..! 즉 프로그램의 실행은 CPU burst와 I/O burst의 연속입니다 ​ CPU burst, I/O burst가 뭐에요? CPU burst = > CPU명령을 실행하는 것 I/O burst = > I/O를 요청한다음 기다리는 ​ [CPU-burst Time의 분포] I/O bound job : CPU를 짧게 쓰고 I/O작업을 하는 것 (우선적으로 cpu줘보자 효율성!) CPU bound job : CPU만 오래 쓰는 작업 ​ 결론 : 여러 종류의 job(=process)이 섞여 있기 때문에 CPU 스케듈링이 필요 ​ CPU Schduler & Dispatcher CPU Scheduler(..
· CS/OS
목적 : 🔎 프로세스 생성에 대해 이해하기 위해 ​ 프로세스가 생성될 땐 부모 프로세스가 자식 프로세스를 생성합니다. 이 때 부모 프로세스가 직접 생성하는 것이 아니라 System Call을 통해 운영체제에게 요청하여 자식 프로세스를 생성합니다. (생성하는 방법은 복제생성입니다..!) ​ 그럼 복제 생성은 어떻게 될까요? 부모프로세스의 주소공간 내용을 그대로 자식 프로세스의 주소공간으로 복사한다. (Fork) 부모 프로세스와는 다른 자식프로세스의 프로그램을 실행해야할 경우 복제된 주소공간 위에 새로운 프로그램의 주소공간을 덮어씌어 실행한다. (Exec) (1단계 복제 -> 2단계 덮어씌우기) ​프로세스와 관련한 System Call [fork() System Call] 부모 프로세스가 fork를 하면 자..
· CS/OS
목적 : 동기식 - 비동기식 입출력의 구분 / Thread란 무엇인가 ​ ​ [동기식 입출력] I/O 요청 후 입출력 작업이 완료된 후에 제어가 사용자 프로그램에 넘어감 구현 방법 1 I/O가 끝날 때까지 CPU를 낭비시킴 매시점 하나의 I/O만 일어날 수 있음 구현 방법 2 I/O가 완료될 때까지 해당 프로그램에게서 CPU를 빼앗음 I/O 처리를 기다리는 줄에 그 프로그램을 줄 세움 다른 프로그램에게 CPU를 줌 [비동기식 입출력] I/O가 시작된 후 입출력 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어감 ​ [Thread 란 lightweight preocess] 프로세스(하나) 내부에 cpu 수행 단위가 여러개가 있는 경우 (프로세스를 별도로 두는 것보다 프로세스 안에 쓰레드를 ..
· CS/OS
프로세스 문맥이란? 프로세스의 현재 상태를 정확하게 규명하기 위해서 필요한 모든 요소들 ​ 1. CPU 수행 상태를 나타내는 HW 문맥 (Program Counter, 각종 register) "프로세스는 CPU를 잡고 매 순간 instruction을 실행합니다. 그래서 현재 시점의 프로세스가 instruction을 어디까지 실행을 했는지를 알기 위해선 register에 어떤 값을 넣고 있었고,Program Counter가 어딜 가리키고 있었는지에 대한 정보가 필요합니다." ​ 2. Memory와 관련된 프로세스의 주소 공간(code,data,stack) code,data,stack에 어떤 내용이 들어있는가? ​ 3. 프로세스 관련 커널 자료 구조 (운영체제) - PCB(Process Control Blo..
· CS/OS
목적 : 컴퓨터 시스템의 동작원리를 이해하기 위해서 ​ ​ ​ [컴퓨터 시스템 구조] 컴퓨터 내부장치 : Cpu + Memory(cpu의 작업공간) 컴퓨터 외부장치 : I/O device 입출력 장치(디스크,키보드,모니터,네트워크 장치) ​ Deivce controller : 각각의 I/O 장치들은 각 장치를 전담하는 작은 CPU가 붙에 있게 되는데 그건 device controller라고 부릅니다. CPU는 device controller에게 데이터를 읽어오라고 일을 시키고, 그럼으로써 CPU는 메모리 작업을 하고 I/O device의 작업은 device controller에게 시켜 일을 분담하게 됩니다. (disk의 내부를 통제하는 것은 cpu의 역할이 아니고 device controller의 역할입..
· CS/OS
목적 : 운영체제가 자원관리를 어떻게 하는지 알아보기 위해서 ​ [운영체제란?] 운영체제는 컴퓨터 내의 하드웨어와 사용자 및 다른 모든 소프트웨어를 관리시켜주는 하드웨어 바로 윗단에 설치되어 있는 소프트웨어입니다. ex) Windows, Max OS, Linux, Unix, Android, IOS 등 [운영체제의 자원 관리기능] 운영체제의 가장 핵심적인 기능은 자원을 효율적으로 관리하는 것입니다. 여기서 말하는 자원이란 2가지로 구분됩니다. HW 자원 (OS의 아랫단 CPU/Memory/주변장치 or 입출력 장치) SW 자원 (OS의 윗단) ​ (예전에는 하나의 운영체제가 하나의 프로그램밖에 관리를 못했다고 합니다.. 근데 요즘에는 하나의 운영체제가 여러개의 프로그램을 관리할 수 있기 때문에..) ​ [..
배준오
'운영체제' 태그의 글 목록