728x90
반응형

OS 5

[운영체제(OS)] 7-2. 프로세스 동기화 (Process Synchronization)

저번글까지 critical section problem 문제를 해결하기 위한 알고리즘에 대해서 알아보았다. 오늘은 lock을 이용해서 critical section problem을 해결하고 semaphore에 대해서 알아보도록 하겠다. 프로세스 동기화에 대해 알고 Peterson’s Algorithm을 이해하였다. 하지만 우리가 개발을 하는 입장일 때, 어떤 과정을 통해 동기화 과정이 해결되는 지 몰라도 기계적으로 코딩할 수 있도록 하는 것이 더 좋은 방법일 것이다. 그래서 나온것이 Lock이용한 해결법이다. 동작방식 1. lock을 가진 process만이 critical section에 들어갈 수 있다. 단 lock은 하나의 process에게만 주어져야 한다. 2. critical section이 끝나..

운영체제 2022.03.23

[운영체제(OS)] 7-1. 프로세스 동기화 (Process Synchronization)

여러개의 process가 동시에 동작할 때, 공유된 데이터에 대해 안전하게 동작하기 위해서 프로세스 동기화가 필요하다. 프로세스가 shared data(공유 데이터)에 concurrent access(동시접근)하면 data가 일치하지 않을 수 있다. 그 예는 밑에 작성하도록 하겠다. 따라서 데이터 일관성(data consistency)을 유지하려면 프로세스가 차례대로 데이터에 접근해 실행을 할 수 있도록 해야한다. Race Condition : 여러 프로세스가 동시에 공유 데이터에 접근하고 데이터를 수정하고 있는 상황을 말한다. 이렇게 Race Condition이 발생하면 공유 데이터의 최종 값은 마지막으로 공유 데이터에 쓰여지는 값이 된다. Race Condition을 방지하려면 프로세스를 동기화해 한..

운영체제 2021.08.11

[운영체제(OS)] 5. 프로세스와 스레드 (Processes And Threads)

Process Concept 프로세스란? 실행 중인 프로그램(즉 메모리에 올라간 프로그램을 가르킨다) 프로그램 실행은 순차적인 방식으로 진행되어야 한다.(만들어진 코드들이 순차적으로 진행되어야한다) 프로세스는 다음을 포함한다. 텍스트 섹션(text section): 프로그램 코드 프로그램 카운터(PC) 및 레지스터 값 스택(stack): 매개변수, 반환 주소(return address), 지역 변수(local variable) 등을 저장한다. 데이터 섹션(data section): 정적변수(static variable)와 전역 변수(global variable)를 저장합니다. 동적 할당을 위한 힙 섹션(사용 가능한 메모리 풀에서 찾아서 할당해줌) 다음은 메모리에 있는 process의 주소공간을 나타냅니다..

운영체제 2021.07.27

[운영체제(OS)] 2. 컴퓨터 시스템 (Computer System Overview 1)

OS에 들어가기 전, 컴퓨터의 전반적인 동작과 구성요소를 알아보면서 이해를 높이도록 하겠다. 이 글에서 Processor와 CPU는 같은 말로 사용되었음을 적어놓는다. 컴퓨터의 기본요소 우선 컴퓨터의 기본적인 요소는 4가지가 있으며 우리가 컴퓨터라고 부르는 것은 다음과 같은 요소를 꼭 포함하고 있어야한다. Processor Main Meory System bus I/O modules Processor Processor 내부에 register가 존재하는데 I/O data를 위한 register와 다른 register 들에 대한 설명이다. I/O Data를 위한 Register Memory Address Register(MAR) Processor가 다음 번에 수행할 명령어의 주소를 저장하는 register이..

운영체제 2021.07.20

[운영체제(OS)] 1. 운영체제란? (Operating Systems Course Overview)

운영체제란 무엇인가? 우리 모두 컴퓨터를 접하면서 운영체제라는 말을 들어본적이 있을 것이다. 운영체제는 Windows, Linux, MacOS, Android 등 이라고 알고 있다. 소프트웨어인것은 알겠는데 무슨 역할을 하며 왜 컴퓨터에 필요한 것인가에 대한 의문점은 사라지지 않는다. 앞으로의 운영체제 포스팅에서 내가 배운 운영체제란 무엇이며 어떤 일을 하는지 작성하도록 할것이고 이번 글에서는 운영체제는 어떤 일을 하는 것인지 흐름을 잡도록 하겠다. 새로운 컴퓨터를 산 "홍길동"은 재밌게 게임을 하고 있다. 어느날 조카가 흙먼지를 뭍히고 놀러와 컴퓨터를 만지려고 한다. 컴퓨터가 더럽혀 지고 넘어질지도 모르기 때문에 길동이는 조카를 막아설 것이다. 조카와 컴퓨터 사이에서 "길동이가 하는 일"은 다음과 같다..

IOS 2021.07.09
728x90
반응형