분류 전체보기
-
OS의 메모리관리2학교 수업/OS 2020. 5. 9. 18:57
Virtual memory(가상메모리) - 한정된 physical memory의 한계를 극복하고자 디스크와 같은 보조기억장치를 활용해 더 많은 메모리를 활용할 수 있게 하는 것. - virtual memory에서 paging 기법을 사용할 때 거의 demand paging 기법으로 구현된다. Demand paging - swapping + paging - 실제로 필요한 page만 물리 메모리로 가져오는 방식 -> physical memory의 여유공간이 얼마나 되는지 고민할 필요 x 프로그램이 전체 다 메모리에 올라오는 것일 아니라, 동시에 많은 프로그램을 메모리에 올려 작업 수행 가능 한꺼번에 올리는 소스의 양이 적어 disk와 memory간 I/O작업속도 빨라짐 1) Valid-invaild bit를..
-
[SWEA] 5653. 줄기세포배양문제 풀이 2020. 5. 9. 17:29
5653 줄기세포배양 풀이) 처음에는 어떻게 좌표를 잡아야하는지 몰라서, set을 이용해서 이미 세포가 있는 곳은 번식하지 않게 했다.(세포는 struct sepo{}를 선언해서 관련 정보를 저장했고)그러다보니 통과는 했지만 시간이 어마 무시했다. set을 이용한 코드) 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108#include #include #include #in..
-
[SWEA] 1952. 수영장문제 풀이 2020. 5. 8. 20:22
1952 수영장 풀이)DFS를 이용해서 모든 경우를 다 확인해보면 되는 문제였다. 1월에만 1년 이용권을 살 수 있고,그 외 나머지 월에는 1일, 1달, 3달 이용권을 살 수 있는 선택지가 있다.그 조합들을 다 확인해보면 된다. 코드) 12345678910111213141516171819202122232425262728293031323334353637383940414243#include #include using namespace std; int cost[4];//1일, 1달, 3달, 1년int result;int month[13]; void dfs(int wal,int res) { if (wal > 12) { result = min(result, res); return; } if (wal == 1) {..
-
[SWEA] 1953 탈주범 검거문제 풀이 2020. 5. 8. 18:51
1953 탈주범 검거 풀이)bfs를 이용해 탈주범이 이동하게 푼 문제이다 핵심은각 터널마다 어떤 방향(상하좌우)로 움직일 수 있는지,방향으로 움직였을때 움직인 방향의 터널과 연결될 수 있는지를 저장해놓는 것이다. 나같은 경우는 터널 구조물 1~7번 각각 어떤 방향으로 움직이는지를 vector turner[8];에 저장하고방향으로 움직였을때 터널에 이어질 수 있는 지를 vector connect[4];에 저장했다. turner[i] = i번째 터널일 경우 어떤 방향으로 움직일 수 있는지 상하좌우를 0, 1, 2, 3 이라고 할때터널 구조물 1은 (십자가 모양) : 0, 1, 2, 3 방향 모두 움직일 수 있다.터널 구조물 2는 (세로막대기 모양) : 0, 1 방향으로만 움직일 수 있다....이런식으로 생각..
-
OS의 메모리 관리학교 수업/OS 2020. 5. 8. 17:29
이전에는 OS의 자원관리 기능 중 프로스세스관리(스케줄링, 동기화, 교착상태해결)에 대해 배웠고, 이제는 자원 관리 기능 중 기억장치 관리에 대해 배울 것이다. 그 전에 알아야 할 몇 가지 배경들이 있다 1. 운영체제는 각 프로세스들을 메모리 각각의 공간에 할당하고, 프로세스가 다른 프로세스에 접근하는 것을 막는다. 메모리에 프로세스가 올라가 있는 상태 그림 -> 메모리에서 프로세스 시작 위치를 저장하는 base register -> 프로세스에게 할당된 메모리 크기 저장하는 limit register 두 개의 레지스터 값을 통해 프로세스들의 메모리공간을 나눈다. 2. 주소바인딩 - 주소바인딩이란? 프로세스가 접근해야 하는 값과 함수에 대한 주소가 정해지는 것 프로그램이 컴파일 되어 메모리에 올라간 후, ..
-
[SWEA] 2382 미생물 격리문제 풀이 2020. 5. 7. 20:50
2382 미생물 격리 풀이)백준 17143 낚시왕 문제랑 똑같이 풀었다. 이차원 vector을 사용해서 중복된 위치의 군집을 해결해준다는 것이 핵심이다. 코드) 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192#include#include #include using namespace std; struct virus { //세로위치, 가로위치, 미생물 수, 이동방향, 바이러스 구별 인덱스 int y, x, num, dir, idx; virus(i..
-
Deadlock학교 수업/OS 2020. 5. 7. 18:55
Process scheduling과 Process synchronization에 대해 배웠다면,이제는 Deadlock에 대해서 배워보자. 교착상태(Deadlock) 둘 이상의 프로세스가 더 이상 계속할 수 없는 어떤 특정 사건을 기다리고 있는 상태 1) 교착상태가 발생하기 위해서는 4가지 조건이 동시에 만족되어야한다. ① 상호배제(mutex exclusion) : 한 번에 한 프로세스만이 자원을 사용해야 하는 경우 ② 점유와 대기(block and wait) : 자원을 일부 점유하면서 다른 자원을 기다리는 경우 ③ 비선점(non preemption) : 프로세스가 완료되기 전에는 자원을 회수할 수 없는 경우 ④ 환형 대기(circular wait) : 자원을 할당 받은 두 프로세스가 서로 할당된 자원을 ..