본문 바로가기

분류 전체보기103

[운영체제 OS] Memory 구조 메모리 계층 구조 메모리 공간은 계층 구조를 가지며 다음과 같은 순으로 CPU와 멀어진다. 레지스터 → CPU 캐시 메모리 → 메인 메모리 → 하드디스크 CPU로부터 멀어질수록 데이터를 저장하는 용량이 커지지만 접근 속도는 느려진다. 메모리 공간 요소 메모리는 아래와 같이 크게 총 4가지 영역(Code, Data, Heap, Stack)으로 구분된다. Code 프로그램 명령이 위치하는 곳으로 기계어로 제어되는 메모리 영역 Data 프로그램이 실행될 때 생성되고 프로그램이 종료되면 시스템에 반환되며 전역변수, 정적변수, 배열, 구조체 등이 저장되는 영역 Heap 필요에 의해 메모리를 동적 할당하고자 할 때 사용하는 동적 데이터 영역 Stack 지역변수, 매개변수, 리턴 값 등이 잠시 사용되었다가 사라지는 .. 2021. 8. 25.
[백준] 1303번 : 전쟁 (C++) https://www.acmicpc.net/problem/1303 1303번: 전쟁 - 전투 첫째 줄에는 전쟁터의 가로 크기 N, 세로 크기 M(1 ≤ N, M ≤ 100)이 주어진다. 그 다음 두 번째 줄에서 M+1번째 줄에는 각각 (X, Y)에 있는 병사들의 옷색이 띄어쓰기 없이 주어진다. 모든 자리에는 www.acmicpc.net 자주 나오는 유형으로, DFS를 이용하여 간단히 구현하였다. 설명은 생략 :) #include using namespace std; int N, M,W,B; char map[100][100]; int visit[100][100]; int dx[4] = { 0,0,1,-1 }; int dy[4] = { 1,-1,0,0 }; int tmp; void solve(int x, i.. 2021. 8. 25.
ep. 1 취린이의 끄적끄적....🙃 얼마 전 고등학교 친구랑 증명사진을 찍고왔다. 마지막으로 찍은 증명사진이 고3때라, 얼굴 사진을 첨부해야 할때마다 난감했었다.... 사실 진짜 이유는 본격적인 취준을 위해서다..😢 이렇게 찍고보니 기분이 묘했다. 4년이라는 시간동안 많이 달라진것 같기도 하고 그대로 인것 같기도하고 그렇다 ㅎ 취업은 머나먼 이야긴줄로만 알았는데 벌써 내가 4학년이라니..... 믿을수없다. 사실 이렇게 빨리 졸업 할 생각은 아니었다. 예정대로라면 휴학을 하고 지금 인턴을 하고 있었겠지만, 중간에 복잡한 문제가 많이 꼬여 결국 다 취소하고 그냥 학교 다니기로 결정했다. 덕분에, 지난 달 이런저런 스트레스도 많이 받았지만 (탈모 오는줄 알았다😂😂), 또 새로운 기회가 올 것이라고 생각하고 열심히 하려고 한다! 또 인턴기회가 오.. 2021. 8. 23.
[운영체제 OS] Kernel Thread vs User Thread Note 사용자 수준 스레드와 커널 수준 스레드는 생성 주체에 따라 구분된다. 사용자가 라이브러리를 만들고 관리하는지, 운영체제의 커널이 만들고 관리하는지에 따른 차이다. Kernel Thread 커널레벨에서 생성되는 스레드로 커널이 스레드와 관련된 모든 작업을 직접 관리 장점 모든 스레드가 System Call로 구현 가능 커널이 직접 스레드와 관련된 모든 작업을 처리 단점 커널 단 수행시간이 오래걸려 오버헤드가 높음 User Thread 사용자 레벨 라이브러리 통해 구현된 스레드로 커널 영역 위에서 동작 장점 스레드 관련 작업시 커널을 호출하지 않아 오버헤드가 낮음 커널에 독립적으로 스케줄링 가능하여 모든 운영체제에 적용 가능 단점 커널이 스레드 관리에 직접 개입하지 못함 User mode에서 실행되.. 2021. 8. 23.
[운영체제 OS] 동기 VS 비동기 / Blocking vs Non-Blocking Note : 용어가 헷갈릴 수 있기 때문에동기 & 비동기는 시간 관점, Blocking & Non-Blocking은 제어권 관점에서 생각하기 동기 (Synchronous) 요청과 그 결과가 동시에 일어나는 것. 요청 후 결과가 와야만이 그 다음 작업이 이루어지는 방식. 특징 간단하고 직관적 어떠한 일을 처리하는 동안 다른 일을 하지 못함 작업 완료여부를 호출한 쪽에서 신경 씀 비동기 (Asynchronous) 요청과 그 결과가 동시에 일어나지 않는 것. 요청 후 결과가 오는 동안 그 다음 작업이 이루어지는 방식. 특징 동기보다 복잡 어떠한 일을 처리하는 동안 다른 일을 할수 있어 자원을 효율적으로 사용 작업 완료여부를 호출된 쪽에서 신경 씀 Blocking I/O 호출된 함수가 자신의 작업을 모두 끝낼때.. 2021. 8. 23.
[운영체제 OS] Deadlock (교착상태) Deadlock이란? 일련의 프로세스들이 서로 가진 자원을 요청하고 기다리며 blocked된 상태 Deadlock 발생 필요조건 4가지 Mutual Exclusion (상호 배제) - 한 자원에 대해 여러 프로세스 접근이 불가함 Hold and Wait (점유와 대기) - 프로세스가 자원을 가지고 있는 상태로 다른 프로세스가 사용하고 있는 자원의 반납을 기다림 No preemption (비선점) - 다른 중요한 프로세스가 들어와도 현재 수행하는 프로세스를 계속 수행함 Circular Wait (순환대기) - 각 프로세스가 순환적으로 다음 프로세스가 요구하는 자원을 소유함 Deadlock 처리 방법 Deadlock 해결 방법에는 예방, 회피, 회복, 무시 4가지가 존재하지만, 대표적인 방법인 회피에 대해서.. 2021. 8. 23.