일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 프로그래머스
- 커밋 되돌리기
- @SubscribeMapping
- intelij spring config
- m:n
- API
- JDBC
- application layer
- BindingResult
- 기본키 전략
- JPA
- 쿠키
- 쉘 스크립트
- 파이썬
- DTO
- 알고리즘
- 컴파일 타임 상수
- 백준
- 리눅스
- allocationSize
- 무한정 대기
- @Autowired
- 런타임 상수
- 오블완
- compgen
- 편향된 지수
- 은행원알고리즘
- spring
- Git
- 티스토리챌린지
- Today
- Total
목록운영체제 (9)
둘셋 개발!
이번 포스팅은 운영체제가 메모리를 어떻게 관리하는지에 대한 대략적인 내용을 간략히 다룬다. 메모리 관리 방식 프로그램은 메모리에 올라와야 실행할 수 있다. 만약 동시에 여러 프로그램을 실행하고 싶다면(시분할이겠지만) 하나의 메모리안에 여러 프로세스가 올라와야 하기 때문에 메모리의 공간을 잘 나누어 프로세스들에게 할당해야한다. 메모리의 공간할당 방법에는 대표적으로 2가지가 있다. 첫번째는 프로세스 크기만큼 메모리를 할당하는 방법인 세그멘테이션 기법이고, 두번째로는 프로세스를 일정 크기만큼 나눠서 메모리를 할당하는 페이징 기법이다. 또한 여러 프로그램을 메모리에 올릴 경우 메모리의 공간이 모자라는 경우도 있을 것이다. 그럴때에는 메모리를 할당받고자 했었던 프로세스 또는 메모리가 모잘라서 쫓겨난 프로세스는 스..
데드락이란? 데드락은 2개 이상의 작업이 자원을 점유하고 있는 상태에서 서로의 자원을 무한정 기다리게 되어 어떤 작업도 더 이상 진행할 수 없는 상태를 말한다. 교착상태라고도 한다. 데드락의 필요조건 데드락의 필요조건는 총 4가지로 상호 배제, 비선점, 점유 대기, 순환 대기가 있다. 1. 상호배제 한 프로세스가 자원을 사용하고 있는 중이라면, 다른 프로세스는 해당 자원을 같이 쓸 수 없다는 것이다. 상호 배제 조건을 만족하지 않는다면, 서로의 자원을 무한정 기다리는 것이 아니라 그냥 같이 사용하면 되기 때문에, 데드락 상황이 발생하지 않는다. 2. 비선점 한 프로세스가 자원을 사용하고 있는 상황에서 다른 프로세스가 해당 자원을 선점할 수(빼앗을 수) 없다는 것이다. 비선점 조건을 만족하지 않는다면, 자..
Critical section이란? 공유 자원 접근 순서에 따라 실행 결과가 달리지는 프로그램 영역 (출처: 쉽게 배우는 운영체제) 여러 프로세스가 변수, 메모리, 파일 등을 공유하면서, 접근 순서에 따라 실행 결과가 달라, 예상이 불가능한 구역을 critical section이라고 한다. 가장 간단한 예로 만약 money=5000이 있고, 프로세스가 2개가 있다고 가정해보자. process1은 money-=1000을 하고 process2는 money+=500을 한다고 해보자 process1은 money가 5000원인 것을 확인하고 1000을 빼려는 작업을 시작하고, process2도 money가 5000원인 것을 확인하고 500을 더하려는 작업을 시작한다. 이렇게 되면 process1이 먼저 작업을 끝..
프로세스의 상태 중에 ready(준비 상태)에 있는 프로세스 들은 큐에 담겨져 있는데, 어떤 기준으로 담겨있어야 cpu를 효율적으로 사용할 수 있을까?? 먼저 어떤 알고리즘들이 있는지 알아보자. 1. FCFS 스케줄링 First Come First Served의 약자로, 먼저 들어온 순서대로 cpu를 할당받는 스케줄링이다. 한 프로세스가 끝나야 다음 프로세스가 cpu를 할당 받을 수 있음으로 비선점 알고리즘이다. - 장점: 단순하고 공평하다. - 단점: 처리시간이 긴 프로세스가 먼저 도착한다면 뒤에 있는 프로세스는 대기시간이 계속 길어져 시스템의 효율성이 떨어진다. 2. SJF 스케줄링 Shortest Job First로 실행시간이 짧은 순서대로 cpu를 할당받는 스케줄링이다. sjf도 비선점 알고리즘이..