반응형 남이 읽는 CS20 [운영체제 9편] 스케줄링 종류 안녕하세요! 개발자 배씨입니다:) 자 오늘은 드디어 ~~~~ 스케줄링에 대해서 알아보려고 해요 내용이 많으니까 천천히 잘 따라오셨으면 해요. 저도 쉽게 설명하기 위해 노력할테니까!! 크흠. 제 목표는 "글을 읽는 모두를 이해 시키는 것" 입니다 ㅎㅎ 가봅시다 !! 지금까지 Context Switching(문맥교환) 이라는 말을 많이 썼어요. CPU가 어떠한 프로세스의 명령어를 수행중이다가 타이머 인터럽트에 의해서 다른 프로세스로 교체를 하잖아요? 이때 수행중이던 프로세스의 정보를 PCB에 담고 다른 프로세스의 PCB 정보를 꺼집어내서 그 프로세스를 수행시킨다고 "한 100번 정도 말씀 드렸어요" 그렇다면 이 문맥교환을 할 때 어떤 프로세스를 선택해서 교체작업이 시작될까요?? 이것이 스케줄링 입니다~ CP.. 남이 읽는 CS/운영체제 2022. 4. 13. [운영체제 8편] IPC란 무엇인가 안녕하세요! 개발자 배씨입니다~~ :) 저번 시간에는 인터럽트에 대해서 알아보았어요!! 오늘은 예전부터 언급했던 IPC 가 무엇인지 이제 배워볼게요 ㅎㅎ 지금껏 제가 설명드렸던 프로세스는 각자 독립적인 주소 공간을 가지고 수행되기 때문에 다른 프로세스와 정보를 주고 받을 수 있는 방법이 없다고 생각 하셨을거에요~ 멀티 스레드 환경에서는 서로 공유하는 공간이 있기 때문에 데이터를 주고 받을 수 있겠지만 프로세스는 독립된 구조인데 어떻게 자원을 공유할 수 있을까요? 그래서 똑똑한 조상이 운영체제가 프로세스 간의 협력 메커니즘을 제공해서 하나의 프로세스가 다른 프로세스의 수행에 영향을 미칠 수 있게 해줬답니다. 즉, 하나의 컴퓨터 안에서 실행 중인 서로 다른 프로세스 간에 발생하는 통신! IPC(Inter-P.. 남이 읽는 CS/운영체제 2022. 4. 13. [네트워크 질문] OSI 7계층 (추가내용) “라우터를 통해 IP주소(논리적인 주소)를 어떻게 지정하는건가요? 가장 빠른 경로를 선택하는 것을 라우팅이라고 하고 라우팅을 할 때 라우터를 사용합니다. 라우팅은 정적 라우팅 알고리즘(가장 빠른 경로를 정적으로 할당)과 동적 라우팅 알고리즘(네트워크 상태의 변화에 따라 경로 재구성)으로 구분할 수 있고, 정적 라우팅 알고리즘에서는 dijkstra 알고리즘이 사용됩니다. “라우터를 통해 가장 빠른 경로를 선택하고, 그 경로를 따라 가다보면 목적지 ip주소에 도착한다” 로 알고있으시면 될거 같습니다! “세션 계층은 어떤 방식으로 논리적 연결을 담당해주나요?” 세션계층을 좀 더 자세히 설명하면 통신하려는 두 컴퓨터 내의 프로세스를 연결해주는 계층입니다. 세션을 문자 그대로 해석하면 “회의”라고 해석할 수 있는.. 남이 읽는 CS 2022. 4. 13. [운영체제 7편] 인터럽트가 무엇인가 안녕하세요~ 개발자 배씨입니다 :) ㅎㅎ 자! 오늘은 인터럽트가 무엇인지에 대해서 알아볼려고 해요~ 해당 주제를 어떻게 정리해야할 지 정말 까다로워서 며칠을 고민하고 수정했답니다. 또한, 이 주제에서는 조~~~~금 용어가 많이 나오니까 목도 푸시고~ 기지개도 한번 쫘악 피시고 정신 가다듬고 천천히 따라오세요! 들어갈게요~ 인터럽트가 무엇일까요??? 입터럽트는 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우 현재 실행중인 작업을 일시 중단하고, 발생된 상황을 우선 처리한 후 실행중이던 작업으로 복귀하여 계속 처리하는 것을 말해요! 말이 좀 길죠? ㅎㅎ 이해가 잘 되진 않을겁니다. 다만, CPU가 어떠한 프로세스를 수행중이다가 갑자기 인터럽트라는 신호가 발생되면 하던일을 중단하고 다른 무언가를 처.. 남이 읽는 CS/운영체제 2022. 4. 4. [운영체제 6편] 유저모드 커널모드 저번 시간에 "데드락"에 대해서 배워봤었죠?? 그리고 "IPC"에 대한 존재가 있다고 했지만 그전에 배워야할 것들이 있다고 했어요~ 흐름에 따라 포스팅을 하는 것이 자연스럽고 깔끔하다고 느끼지만, 글을 쓰다가 아직 포스팅하지 않은 내용의 용어를 써야할 때는 조금 막막하더라구요. 그래서 고민하다가 데드락이 끝난 직후 바로 정리를 하는게 나을거 같더라구요~ 그래서 저번시간에 언급했던 IPC를 배우기전에 한번 거쳐서 가야할 부분이 있습니다. 유저모드와 커널모드 ,시스템 콜, 인터럽트 정도? 알고 가시는게 흐름 상 좋을거 같다는 생각입니다! 자 그렇다면 오늘은 무엇을 배울거냐???! "유저모드" 그리고 "커널모드"에 대해서 배워볼려고 합니다. 그게 뭐야..? 하실수 있을거에요 ㅎㅎ 저도 그랬거든요. 일단 한줄~.. 남이 읽는 CS/운영체제 2022. 4. 3. [운영체제 5편] 데드락이 무엇인가 안녕하세요~ 개발자 배씨입니다!! 저번 시간에 뮤텍스와 세마포어에 대해서 알아보았어요 이번 시간에는 "Deadlock(교착상태)"에 대해서 알아보려고 해요. 교착상태 그게 뭐지..? 생각하실 수 있어요. 저번시간에 예를 들었었죠?? 화가 "배씨" 와 화가 "이씨"가 있어요. 그리고 "배씨"와 "이씨"는 그림을 그릴려고 작업실(임계구역)에 들어가서 물감(공유자원), 붓(공유자원)을 각각 하나씩 집었어요. "배씨"는 물감을 들었고 "이씨"는 붓을 들고 서로 필요한 도구를 기다리고 있는거에요. "배씨"는 붓이 필요하니까 붓을 기다리고 있고, "이씨"는 물감이 필요하니까 물감을 기다리고 있는거죠. 즉, "둘 이상의 프로세스가 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다.. 남이 읽는 CS/운영체제 2022. 3. 22. [운영체제 4편] 세마포어가 무엇인가 안녕하세요! 개발자 배씨입니다!! 저번 시간에 뮤텍스에 대한 포스팅이 길어지면서 분위기 전환 겸 새 게시글로 이어서 작성해요! 이번에는 "세마포어"에 대해서 알아보려고해요! 핵심만 먼저 말하자면 공유자원이 하나 이상일 때 처리하는 동기화 방법입니다. "카운팅 세마포어"라고도 불립니다. 예를 한번 들어볼게요! 뮤텍스의 예와 조금 다르게 식당에 화장실이 3개가 존재하고 식당 카운터에 화장실 열쇠가 3개 걸려있다고 생각해보세요! 만약, 화장실 3개가 모두 비어있다면 카운터에는 3개의 열쇠가 있을거에요. 이후, 한명의 사람이 열쇠를 하나 들고 화장실에 들어가게 되면 카운터에는 열쇠 2개가 남았을거에요 이후, 한명의 사람이 열쇠를 하나 들고 화장실에 들어가게 되면 카운터에는 열쇠 1개가 남았을거에요 이후, 한명의.. 남이 읽는 CS/운영체제 2022. 3. 15. [운영체제 3편] 뮤텍스가 무엇인가 지난 시간에 스레드에 대해서 알아봤었죠?! 그리고 멀티 스레드 환경에서는 서로 공유하는 영역이 있기 때문에 같은 데이터에 접근하는 경우 문제가 발생할 수 있다고 설명드렸어요~ 그래서 제가 "동기화 작업"이 필요하다고 했었죠?? 자! 그럼 동기화가 뭔데?! 한번 들어가봅시다 :) 저번 시간에 예시를 들면서 설명 잠깐 했어요 스레드 "배씨"가 공유자원인 도화지에 사자의 얼굴을 그리다가 다른 스레드 "이씨"가 들어와서 호랑이로 바꿨잖아요?? 그렇게 된다면 스레드 "배씨" 가 계획했던 목표가 바뀌면서 나아갈 수 없는 상황이 되겠죠. 이처럼 프로세스/스레드는 같은 데이터에 접근해야하는 경우가 있어요! 이때 일정한 규칙없이 데이터 수정을 허용하게 된다면 데이터의 신뢰성이 사라지겠죠?? 그렇기때문에 데이터의 일관성을.. 남이 읽는 CS/운영체제 2022. 3. 8. [운영체제 2편] 스레드란 무엇인가 안녕하세요! 운영체제의 두번째 게시글이에요ㅎㅎ :) 첫번째 게시글에서 프로세스에 대한 기본적인 개념에 대해서 설명을 드렸어요 저번시간에 언급드렸듯이 오늘은 "스레드"에 대해서 배워볼까 합니다!! 스레...드..? 뭘 쓰래..? ㅎㅎ 자! 여러분들이 Zoom 이라는 화상회의 프로그램을 실행시키고 유튜브를 켜서 유튜브 영상을 보고있다고 가정할게요! 저번 시간에 설명했던 프로세스 기억나시나요?! 그쵸! Zoom이 하나의 프로세스이고, 유튜브도 하나의 프로세스가 되겠죠?! 그렇다면 Zoom을 한번 살펴볼게요~ Zoom에서 상대가 공유한 화면만 볼 수 있나요? 아니죠! 다른 사람들의 얼굴과 자신의 얼굴이 보여지는 창도 있을거에요! 그리고 서로 소통을 할 수 있는 채팅창까지 활용할 수 있죠. 이처럼 하나의 프로세스.. 남이 읽는 CS/운영체제 2022. 3. 5. [운영체제 1편] 프로세스란 무엇인가 자! 운영체제에 대해서 공부해봅시다! :) 코딩 문제 풀이에서는 항상 반말로 했지만 CS전공 관련 내용들은 존댓말로 할까 합니다! (조금 어색ㅎ) 평소 살아가면서 학교 수업 외에는 프로세스와 스레드에 관련된 내용은 들어보지 못했을 겁니다. 저 또한 그래요.. 누가 친구들한테 프로세스는 메모리에 할당 되는 건데 그건 각각의 스레드로 .. 뭐 이런말 하면 어쩌라고? 하겠죠? ㅎㅎ 일상에서 쓰이지 않는 이 단어들은 저희는 알아야 해요~ 왜냐하면 컴퓨터를 배우니깐요! 서론이 조금 길었네요! 한번 차근차근 알아봅시다! 먼저, 프로세스에 대해서 한번 얘기해볼테니까 천천히 읽어봐요~ 여러분들이 노트북을 펼쳐서 전원 버튼을 누르게 되면 제일 먼저 뜨는게 뭐죠??? 그쵸 바탕화면이죠?? 바탕화면에 여러파일들이 있을겁니다.. 남이 읽는 CS/운영체제 2022. 3. 4. 이전 1 2 다음 반응형