![[운영체제] 연속 메모리 할당](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzFyHh%2Fbtsl6VJE9tk%2FJgjhwYMmjnH7NGKsJUX1a1%2Fimg.png)
이 글은 혼자 공부하는 컴퓨터 구조 + 운영체제 (저자 : 강민철)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. 프로세스에 연속적인 메모리 공간을 할당하는 방식을 연속 메모리 할당 방식이라고 한다. 스와핑(Swaping) 현재 실행되지 않는 프로세스들을 보조기억장치의 일부 영역으로 쫓아내고, 메모리에 생긴 빈 공간에 새로운 프로세스를 적재시키는 방법 스왑 영역(swap space) : 프로세스들이 쫓겨나서 머무는 보조기억장치의 일부 영역 스왑 아웃(swap out) : 현재 실행되지 않는 프로세스가 메모리에서 스왑 영역으로 옮겨지는 것 스왑 인(swap in) : 스왑 영역에 있던 프로세스가 다시 메모리로 옮겨오는 것 스왑 아웃되었던 프로세스가 다시 스왑 인이 될 때는 이전 물리 ..
![[운영체제] 교착 상태(Deadlock) 해결 방법](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbu7HHD%2Fbtsl1IYwoYb%2FDrcgNISPSepmtkOZFbKoi0%2Fimg.png)
이 글은 혼자 공부하는 컴퓨터 구조 + 운영체제 (저자 : 강민철)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. 아래는 모두 프로세스를 예로 들었지만 스레드에서도 똑같이 적용된다. 교착 상태가 발생할 조건에는 아래와 같이 네 가지가 있다. 아래의 조건 중 하나라도 만족하지 않는다면 교착 상태가 발생하지 않지만, 아래 조건이 모두 만족될 때 교착 상태가 발생할 가능성이 생긴다. 상호 배제(mutual exclusion) : 한 프로세스가 사용하는 자원을 다른 프로세스가 사용할 수 없는 상태 점유와 대기(hold and wait) : 자원을 할당받은 상태에서 다른 자원을 할당받기를 기다리는 상태 비선점(nonpreemptive) : 어떤 프로세스도 다른 프로세스의 자원을 강제로 빼앗지..
![[운영체제] 교착 상태(Deadlock)의 개념](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqjTtU%2FbtslZ15SQeK%2FViFpFhbp6Z1wzd8eKpFdl0%2Fimg.png)
이 글은 혼자 공부하는 컴퓨터 구조 + 운영체제 (저자 : 강민철)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. 교착 상태(Deadlock) 교착 상태의 정의 : 일어나지 않을 사건을 기다리며 진행이 멈춰 버리는 현상 아래는 모두 프로세스를 예로 들었지만 스레드에서도 똑같이 적용된다. 예를 들어, 아래와 같은 상황을 교착 상태라고 말할 수 있다. 게임 프로세스는 자원 A를 점유한 채 웹 브라우저 프로세스가 점유하고 있는 자원 B의 사용을 기다림 웹 브라우저 프로세스는 자원 B를 점유한 채 게임 프로세스의 자원 A 사용이 끝나길 기다림 또 다른 교착상태의 예를 들면 식사하는 철학자 문제가 있다. 식사하는 철학자 문제에서 한두 명의 철학자가 식사를 할 때는 문제가 되지 않지만, 모든 ..
2023.07.03 - [프로그래밍 언어] - 카멜 케이스, 파스칼 케이스, 스네이크 케이스 카멜 케이스, 파스칼 케이스, 스네이크 케이스 카멜 케이스(Camel Case) 복수의 단어로 구성된 복합어에서 각 단어를 표기할 때 첫 문자는 소문자로 시작하며 띄어쓰기 대신 대문자로 단어를 구분하는 방식 예를 들어, camelCase, sendMessage, phoneNumber rebugs.tistory.com 자바의 공통 명명 규칙 예약어는 사용 불가 특수문자는 '_'와 '$'만 허용 대소문자가 구분되어야 하고, 길이에 제한 없음 파스칼 표기법과 카멜 표기법을 사용 반의어는 반드시 대응하는 개념으로 사용 패키지 : Lower Case 클래스 : Pascal Case 메소드 : Camel Case 변수 : ..
카멜 케이스(Camel Case) 복수의 단어로 구성된 복합어에서 각 단어를 표기할 때 첫 문자는 소문자로 시작하며 띄어쓰기 대신 대문자로 단어를 구분하는 방식 예를 들어, camelCase, sendMessage, phoneNumber 파스칼 케이스(Pascal Case) 복수의 단어로 구성된 복합어에서 각 단어를 표기할 때 첫 문자는 모두 대문자로 단어를 표기하는 방식 예를 들어, PascalCase, SendMessage, PhoneNumber 스네이크 케이스(Snake Case) 복수의 단어로 구성된 복합어에서 각 단어를 표기할 때 모두 소문자로 표기하고 띄어쓰기 대신 언더바(_)로 표기 예를 들어, snake_case, send_message, phone_number 어퍼 케이스(Upper Ca..
![[운영체제] 프로세스와 스레드의 동기화 기법(뮤텍스 락, 세마포, 모니터)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJn3Li%2FbtslxKhpHMP%2FDLzco6nbT251scVNDRq891%2Fimg.png)
이 글은 혼자 공부하는 컴퓨터 구조 + 운영체제 (저자 : 강민철)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. 동시다발적으로 실행되는 프로세스와 스레드들은 공동의 목적을 수행하기 위해 서로 협력하며 영향을 주고받기도 한다. 이렇게 협력하여 실행되는 프로세스와 스레드들은 실행 순서와 자원의 일관성을 보장해야 하기에 반드시 동기화가 되어야 한다. 프로세스 동기화란 프로세스 사이에 동기화를 하는 것을 말한다. 현재는 대부분 스레드 기준으로 문맥 교환이 일어나기 때문에 스레드 동기화라고도 불린다. 이 글에선 동기화 기법의 전체적 개념을 다루므로 프로세스 동기화와 스레드 동기화의 개념을 구분 짓지 않았으면 좋겠다. 프로세스뿐만 아니라 스레드도 동기화 대상이다. 정확히 말하면 실행의 흐름을..
![[운영체제] 프로세스와 스레드의 동기화 개념](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9eH86%2FbtsltUelkCd%2F1o485RHHBIhgFeKfdfs1P0%2Fimg.png)
이 글은 혼자 공부하는 컴퓨터 구조 + 운영체제 (저자 : 강민철)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. 동시다발적으로 실행되는 프로세스와 스레드들은 공동의 목적을 수행하기 위해 서로 협력하며 영향을 주고받기도 한다. 이렇게 협력하여 실행되는 프로세스와 스레드들은 실행 순서와 자원의 일관성을 보장해야 하기에 반드시 동기화가 되어야 한다. 프로세스 동기화란 프로세스 사이에 동기화를 하는 것을 말한다. 현재는 대부분 쓰레드 기준으로 문맥 교환이 일어나기 때문에 스레드 동기화라고도 불린다. 이 글에선 동기화의 전체적 개념을 다루므로 프로세스 동기화와 스레드 동기화의 개념을 구분 짓지 않았으면 좋겠다. 프로세스뿐만 아니라 스레드도 동기화 대상이다. 정확히 말하면 실행의 흐름을 갖는..
![[운영체제] CPU 스케줄링 알고리즘](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcSd6DQ%2FbtslagijbNW%2FsdwPotDm54AKkaTnAyTuhK%2Fimg.png)
이 글은 혼자 공부하는 컴퓨터 구조 + 운영체제 (저자 : 강민철)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. 선입선출(FCFS:First Come First Served) 스케줄링 비선점형방식 단순히 준비 큐에 삽입된 순서대로 처리하는 스케줄링 먼저 CPU를 요청한 프로세스부터 CPU할당 프로세스들이 기다리는 시간이 매우 길어질 수 있다. (=호위효과) 최단 작업 우선 스케줄링(SJF:Shortest Job First) 선점형이나 비선점형 둘다 구현될 수 있지만 보통 비선점형으로 구현 호위 효과를 줄이기위해 고안된 스케줄링 실행 시간이 가장 짧은 프로세스에 우선순위를 매긴다. CPU 사용이 긴 프로세스는 나중이 실행, CPU 사용 시간이 짧은 프로세스를 먼저 실행 라운드 로빈(..