운영체제

    [운영체제] 인터럽트(Interrupt) 핸들링을 파보자!

    [운영체제] 인터럽트(Interrupt) 핸들링을 파보자!

    📣 해당 포스트는 운영체제 공룡책과 고건 교수님의 OLC 강의 등을 참고하여 작성되었습니다. 인터럽트란 무엇일까요?? 오늘의 주제는 인터럽트가 핸들링되는 방식이기 때문에 인터럽트는 아주 간략하게 정리를 해볼게요! 인터럽트는 CPU에서 돌아가는 프로세스가 시스템콜이 필요한 I/O를 포함한 다양한 작업들과 다양한 예외 사항을 커널에게 처리해달라고 요청해주는 도구라고 보시면 될것 같아요! 인터럽트가 발생되면 인터럽트 핸들러가 기존 돌아가던 프로세스의 상태를 저장하고, 인터럽트 벡터 테이블에서 어떤 인터럽트인지를 검사한 후, 해당하는 인터럽트 서비스 루틴을 실행하는 순서로 작동합니다. 자세한건 위키피디아에 잘 설명되어있습니다! 인터럽트 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 마이크..

    [운영체제] Linux의 CPU 스케줄링 (CFS 알고리즘)을 파보자!

    [운영체제] Linux의 CPU 스케줄링 (CFS 알고리즘)을 파보자!

    📣 해당 포스트는 운영체제 공룡책과 고건 교수님의 OLC 강의 등을 참고하여 작성되었습니다. Linux는 CFS(Completely Fair Scheduler)라는CPU 스케줄링 알고리즘을 사용해요!! CFS는 모든 프로세스가 공평하게 CPU분배를 받도록 하는 동적 우선 순위 기반 알고리즘인데, 이게 무슨 말이냐... 프로세스가 CPU를 기다리는 데 소요한 시간을 계산하여 우선 순위를 동적으로 할당하는 방식입니다. 오랫동안 대기한 프로세스에 더 높은 우선 순위가 부여될 확률이 높은 것이죠. 물론 우선순위는 단순히 기다린 시간에 비례하진 않고, 다양한 조건들을 고려해 종합적으로 매겨집니다. 이번 포스팅에서는 스케쥴링이 어떤 방식으로 이루어지는지 좀 더 자세히 알아보겠습니다!! 1. 타이머 (Timer) C..

    [운영체제] 프로세스 생성(fork)을 파보자!

    [운영체제] 프로세스 생성(fork)을 파보자!

    📣 해당 포스트는 운영체제 공룡책과 고건 교수님의 OLC 강의 등을 참고하여 작성되었습니다. 이 포스트는 시스템 콜을 이해하고 있다는 것을 바탕으로 설명되기 때문에 시스템 콜이 뭔지 모르신다면 꼭 보고 오시는 걸 추천드려요! [운영체제] System Call(시스템콜)을 파보자! 📣 해당 포스트는 운영체제 공룡책과 고건 교수님의 OLC 강의 등을 참고하여 제 나름대로 작성되었습니다. 시스템콜을 한마디로 정리하면 커널에 접근하기 위한 인터페이스입니다. 하지만 시스 hasensprung.tistory.com 우리가 아래 영상처럼 달력 프로그램에서 이벤트 생성을 눌러 하나의 팝업창을 띄워도, 그 이전 화면인 달력을 움직일 수 있습니다. 이는 하나의 프로그램이 아마 여러개의 프로세스로 돌아가기 때문이에요. (아..

    [운영체제] System Call(시스템콜)을 파보자!

    [운영체제] System Call(시스템콜)을 파보자!

    📣 해당 포스트는 운영체제 공룡책과 고건 교수님의 OLC 강의 등을 참고하여 작성되었습니다. 시스템콜을 한마디로 정리하면 커널에 접근하기 위한 인터페이스입니다. 하지만 시스템콜이 이 한마디로 이해되셨다면 시스템콜을 검색하지 않으셨겠죠? 한단계씩 자세히 풀어나가보겠습니다! 1. 시스템콜이 생긴 이유 먼저 시스템콜이 무엇인지 알아보기 전에 시스템콜은 왜 생기게 되었는지 한번 알아볼게요! 개인용 PC로 시작된 Window와는 다르게 Linux는 하나의 컴퓨터를 여러명의 사용자들이 사용하기 위한 OS로 만들어졌습니다. 여러명의 사용자이면서 여러개의 프로그램이라고도 할 수 있겠죠? 사용자들은 결국 프로그램을 실행하는 사람이니깐요ㅎㅎ 이를 Multi User System 이라고 합니다!! 반면에 window는 Si..