보호되어 있는 글입니다.
Computer Science

이 글은 혼자 공부하는 컴퓨터 구조+운영체제 교재와 강의를 참고하여 정리한 글입니다. 오타나, 잘못된 내용이 있으면 언제든지 알려주세요! 감사합니다.😊 가상 메모리 연속 메모리 할당 연속 메모리 할당 방식은 프로세스에 연속적인 메모리 공간을 할당하는 방식을 말한다. 프로세스 B는 프로세스 A 이후에 B의 크기만큼 연속적인 메모리 주소를 할당받아 배치된다. 연속 메모리 할당 방식을 적용할때 무엇을 고려해야할까, 어떤 부작용이 있는지 알아보자. 스와핑 (swapping) 메모리에 적재된 프로세스들 중에 현재 실행되지 않은 프로세스가 있을 수 있다. 예시) 입출력 작업의 요구로 대기 상태가 된 프로세스, 오랫동안 사용되지 않은 프로세스 스와핑이란 메모리에서 사용되지 않는 프로세스들을 임시로 보조기억장치 일부 ..

이 글은 혼자 공부하는 컴퓨터 구조+운영체제 교재와 강의를 참고하여 정리한 글입니다. 오타나, 잘못된 내용이 있으면 언제든지 알려주세요! 감사합니다.😊 교착 상태 교착 상태란 (deadlock) 프로세스를 실행하기 위해서는 자원이 필요한데, 두 개 이상의 프로세스가 각자 가지고 있는 자원을 무작정 기다린다면 그 어떤 프로세스도 더 이상 진행할 수 없는 상태가 된다. 이런 상태를 교착 상태(dead lock)라고 한다. 이러한 교착 상태는 언제 어떻게 발생할까? 식사하는 철학자 문제 (dining philosophers problem) 식사하는 철학자 문제는 교착 상태를 잘 설명할 수 있는 가상의 문제 시나리오이다. 동그란 원탁에 다섯 명의 철학자가 앉아 있다. 철학자들 앞에는 맛있는 식사가 있고, 철학자..
보호되어 있는 글입니다.

이 글은 혼자 공부하는 컴퓨터 구조+운영체제 교재와 강의를 참고하여 정리한 글입니다. 오타나, 잘못된 내용이 있으면 언제든지 알려주세요! 감사합니다.😊 프로세스 동기화 동기화 프로세스들은 동시다발적으로 실행된다. 프로세스들은 공동의 목적을 올바르게 수행하기 위해 서로 협력하며 영향을 주고받는다. 이 과정에서 자원의 일관성을 보장해야 하기에 반드시 동기화, synchronization되어야 한다. 즉, 프로세스들의 동기화를 고려해야 한다. 동기화란 뭘까? 동기화의 의미 공동의 목적을 위해 동시다발적으로 실행되는 프로세스는 서로 데이터를 주고받으며 협력하며 실행될 수 있다. 예시) 워드 프로세서 프로그램 맞춤법 검사 프로세스와 입력 내용을 화면에 출력하는 프로세스 등등 각기 다른 독립적인 프로세스이지만 공동..

이 글은 혼자 공부하는 컴퓨터 구조+운영체제 교재와 강의를 참고하여 정리한 글입니다. 오타나, 잘못된 내용이 있으면 언제든지 알려주세요! 감사합니다.😊 CPU 스케줄링 CPU 스케줄링 개요 모든 프로세스는 CPU를 필요로 하고 모든 프로세스는 먼저 CPU를 사용하고 싶어 한다. 이런 프로세스들에게 공정하고 합리적으로 CPU 자원을 할당하기 위해 운영체제는 어떤 프로세스에 CPU를 할당할지, 어떤 프로세스를 기다리게 할지 결정한다. 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것을 CPU 스케줄링(CPU scheduling)이라 한다. CPU 스케줄링은 컴퓨터 성능과 직결되는 아주 중요한 문제이다. 프로세스 우선순위 프로세스들에게 공정하게 CPU를 배분하려면 어떻게 해야 할까? 단순..

이 글은 혼자 공부하는 컴퓨터 구조+운영체제 교재와 강의를 참고하여 정리한 글입니다. 오타나, 잘못된 내용이 있으면 언제든지 알려주세요! 감사합니다.😊 파이썬으로 프로세스와 스레드 다루기 프로세스 다루기 프로세스 생성하기 print("hello, os!") 단순히 "hello, os!"라는 문자열을 출력하는 코드이다. 이 소스 코드를 실행하면 "hello, os!"라는 문자열을 출력하는 프로세스가 생성된다. 이 프로세스 또한 PID를 가지고 있다. 파이썬에서는 os 모듈의 getpid() 함수를 통해 현재 프로세스의 PID 값을 확인할 수 있다. import os print("hello, os!") print("my pid is", os.getpid()) # 현재 프로세스의 PID 값을 확인할 수 있다...

이 글은 혼자 공부하는 컴퓨터 구조+운영체제 교재와 강의를 참고하여 정리한 글입니다. 오타나, 잘못된 내용이 있으면 언제든지 알려주세요! 감사합니다.😊 프로세스와 스레드 프로세스(process) 프로세스는 실행 중인 프로그램이다. 프로그램은 실행되기 전까지는 그저 보조기억장치에 있는 데이터 덩어리일 뿐이지만, 보조기억장치에 저장된 프로그램을 메모리에 적재하고 실행하는 순간 그 프로그램은 프로세스가 된다. 이 과정을 '프로세스를 생성한다'라고 표현한다. 프로세스 직접 확인하기 컴퓨터가 부팅되는 순간부터 수많은 프로세스들이 실행된다. 리눅스, macOS에서 [ps 명령어]를 통해 확인할 수 있다. 프로세스의 종류는 크게 2가지로 나눌 수 있다. 포그라운드 프로세스(foreground process) 포그라운..