2023/11 3

9. 세마포어(semaphore)

지금까지 OS가 지원해주는 synchronization preeptive들 중 세마포어에 대해서 공부했습니다. 이번에는 OS 내부에서 세마포어를 어떻게 구현하는지에 대해서 알아보겠습니다. 세마포어는 인티저(integer) 변수로 availavle한 리소스 인스턴스의 개수를 표현하는 인티저 값 입니다. 일반적인 경우 0과 1값을 가지지만 리소스 인스턴스가 여러 개가 있는 경우 counting semaphore라고 하여 사용가능한 리소스 인스턴스 개수만큼 값을 설정합니다. 세마포어를 구현할 때 인티저 카운터 변수외에 queue structure가 필요합니다. P 오퍼레이션을 했을 때 세마포어를 획득하기 못했을 때 대기해야 하는 프로세스들에게 사용하기 때문입니다. P, V 오퍼레이션은 다음과 같이 구현됩니다...

CS/Operating System 2023.11.26

1. Linux 설치와 기초 지식

Windows나 macOS에서 기존 운영체제를 유지하며 Linux를 사용하는 방법은 크게 두 가지가 존재합니다. 첫 번째 방법은 virtualization software인 VMware Player나 Oracle Virtual Box를 통해서 가상 머신을 만드는 방법으로 원래 운영체제를 유지하면서 Linux를 이용할 수 있습니다. 두 번째 방법은 AWS나 Google Cloud 서비스를 통해 가상 머신을 생성하고 Linux 운영체제를 설치하는 방법입니다. 또 다른 방법은 Linux의 배포판인 ubuntu를 이용하는 것입니다. Virtual Box는 무료로 다운 받을 수 있습니다. Virtual Box는 기존 컴퓨터 기능을 확장하여 여러 운영체제를 실행할 수 있도록 해줍니다. 기존에 Windows 운영체제..

Linux 2023.11.25

8. 동기화(Synchronization)

synchronization에 대해서 이야기하려면 2개 이상의 프로세스가 필요합니다. synchronization 문제는 논리적 연관성이 있는 프로세스들에서도 일어날 수 있지만 아무런 logical 한 연관성이 없는 프로세스라고 하더라도 서로 컴퓨터 시스템 내에서 자원을 공유하기 때문에 synchronization로 인한 문제가 발생할 수 있습니다. synchronization 문제는 data sharing이나 resource sharing으로부터 발생합니다. 이러한 문제는 오퍼레이션이 진행 중 interrupt service routine이 일어나 값을 바꾸는 상황에서 발생합니다. 그래서 오퍼레이션이 interrupt service routine에 방해를 받지 않는 상태를 만들어야 합니다. 이런 영향을..

CS/Operating System 2023.11.20
반응형