OS 5

[운영체제] 5-1. 프로세스 동기화

오늘은 프로세스 동기화에 대해서 다뤄봅니다. 5장에서 다루는 내용들은 운영체제 분야에서 다소 중요한 개념이므로, 꼭 그리고 자세하고 정확하게 짚고 넘어갑시다. 동시성 제어(Concurrency Control) 프로세스 동기화에 대한 설명을 하기 전, 동시성 제어에 대해 짚고 넘어가봅시다. 단일 프로세서를 기준으로 사실 컴퓨터는 하나의 일만 처리하므로 동시라는 말이 어울리지 않을 수 있습니다. 하지만, 매우 빠른 속도로 여러가지 일을 동시에 처리하는 컴퓨터는 마치 사람이 보기에는 동시에 처리되는 것처럼 보일 수 있죠. 동시성을 제어한다는 것은, 프로세스(또는 쓰레드)가 매우 빠른 속도로 변화함에 따라 데이터에 혼란이 있을 수 있는 사태를 방지해야한다는 것을 의미합니다. 따라서, 우리는 이러한 컴퓨터 자원을..

CS/OS 2023.10.02

[운영체제] 4-2. 쓰레드 정의

오늘은 쓰레드에 대해서 알아보고, 이와 유사한 개념인 프로세스와의 차이점까지 알아보겠습니다. Thread 쓰레드는 프로세스 내부의 instruction의 집합을 의미합니다. 즉, 프로세스의 하위 개념으로 쓰레드가 존재하는 것이죠. 따라서, 리눅스에서는 lightweight process(경량화 프로세스)라고도 부릅니다. 프로세스가 어떻게 구성되어있는지 기억하시나요?? 프로세스는 stack, code, data, PCB로 구성되어있다고 설명드린 바 있습니다. 그렇다면 쓰레드는 어떻게 구성되어 있을까요?? 쓰레드의 구성요소는 다음과 같습니다. stack thread control block 쓰레드는 프로세스의 instruction set이라고 했으니까, 메서드가 존재할 것이고 그렇다면 지역변수를 저장할 공간..

CS/OS 2023.09.27

[운영체제] 4-1. 프로세스 종료, IPC

3장에서는 프로세스가 생성될 때의 과정에 대해서 다뤘습니다. 오늘은 그러한 프로세스가 종료되기 위해서 거치는 과정들에 대해 알아봅시다. Process Termination 우선, 언제 프로세스가 terminated 상태가 되는지 알아보자. 프로세스가 exit()라는 시스템 콜을 부를 때 프로세스가 다룰 수 없는 signal을 받았을 때 자식 프로세스가 더 이상 필요 없어서, 부모가 자식을 kill할 때 signal이란 프로세스끼리 이벤트가 발생했음을 알리는 수단을 의미합니다. exit() 시스템콜을 사용하여 프로세스를 종료하고 싶다면 아래의 순서로 진행됩니다. 1. OS에 의해서 종료될 프로세스의 자원이 회수됩니다. 여기서 PCB는 제외합니다. 2. 부모 프로세스에게 death-of-child 시그널을 ..

CS/OS 2023.09.27

[운영체제] 1-1. 운영체제 개요

운영체제의 개요에 대해서 설명하겠습니다. 운영체제 운영체제는 컴퓨터 응용 프로그램이 실행되는 과정에서 하드웨어를 제어하고, 응용 프로그램 실행 결과를 보일 수 있도록 컴퓨터 내부 동작을 관리하는 소프트웨어를 말합니다. 우측 그림을 보면, OS는 사용자가 사용하는 프로그램들과 하드웨어 사이의 중간다리 역할을 합니다. 운영체제의 역할 1. 컴퓨터를 부팅한다. - 부팅 : 컴퓨터를 킨 이후에 사용할 수 있도록 준비하는 과정. 보조기억장치에 있는 운영체제를 메인 메모리에 옮기는 등과 같은 것을 의미 2. Process Management등으로 여러 응용프로그램을 실행한다. 3. 여러 개의 프로그램을 제어한다. 4. 입출력을 받거나, 파일을 관리(read, write)를 한다. 5. 컴퓨터를 사용한 후, 안전하게..

CS/OS 2023.09.10

[UTM] 로컬과 가상머신 파일 및 폴더 공유하기

운영체제에서 Virtual Box 툴을 사용하고, 나는 arm 환경이라 다른 툴을 사용해야했다.. 물론 쓸 수는 있지만 베타버전이기도 하고 실제로 해보니까 먹통인 부분이 많아서 arm 전용 툴인 UMT를 사용했다. 실제, 실습에서는 Virtual Box를 하다보니까 거기서 설정하는 것들을 UTM에 맞게 바꿔야하는데 잘 몰랐다.. 그 중에서, 내 로컬 환경에서 가상머신으로 파일을 전송하는 법을 알아보려고 한다. 우선 기본 전제는 UTM의 가상머신에 우분투가 설치되어 있어야한다. 참고로 아래에 사용하는 모든 명령어는 로컬에서 실행한다.(당연하겠지만..) 우선 로컬에서 가상머신으로 보내는 방법이다. $ scp [로컬 파일 경로] [원격 username]@[원격 ip]:~[원격에 저장할 경로] 이렇게 되면, 로..

CS/OS 2023.09.07