• 티스토리 홈
  • 프로필사진
    Song hyun
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
Song hyun
  • 프로필사진
    Song hyun
    • 분류 전체보기 (780)
      • 백준 (0)
      • 일본어 (0)
        • 모모타로TMC (0)
      • 영어 (2)
        • Diary (0)
        • Toast Masters (2)
      • 메모 (13)
      • 설치 메뉴얼 (30)
      • Java (178)
      • MySQL (60)
      • JSP (67)
      • Springboot (46)
      • HTML,CSS, JS (71)
        • HTML (8)
        • CSS (12)
        • JavaScript (37)
        • HTML&CSS 스터디 (13)
      • C++ (7)
      • Linux (7)
      • JPA (34)
      • Kotlin (2)
      • Flutter (42)
      • Error Note (39)
      • 디자인 패턴 (12)
      • 디지털논리회로 (4)
      • 데이터베이스 시스템 (8)
      • 알고리즘 (7)
      • 운영체제 (3)
      • 이산수학 (3)
      • 인공지능 (1)
      • 자료 구조 (14)
        • 기본 개념 (14)
        • 자료구조 스터디 (0)
      • 💡My project (76)
        • 팩맨 : Java Swing 게임 제작 프로젝트 (6)
        • 네이트톡 : Java 소켓 통신 프로젝트 (4)
        • 포켓옥션 : HikariCP&JDBC CRUD 프.. (3)
        • 이지 부산 : BDIA-Devton 2024 프로.. (20)
        • 그린 유니버시티 : JSP를 사용한 학사관리 프로.. (1)
        • 애드 포커 : 웹 소켓과 Spring을 사용한 카.. (1)
        • 셸위 : 게임 친구 매칭 사이트 (21)
        • 다모아 : 개발자 중개 플랫폼 (20)
      • 📗스터디 (13)
        • CNN : 웹개발 스터디 (10)
        • Node&React로 유튜브 사이트 만들기 (3)
      • 📙독서 및 강연 기록 (36)
        • 강연 (14)
        • 독서 (22)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • [Java] 89. 사용자 모드와 커널 모드
        2024년 05월 22일
        • Song hyun
        • 작성자
        • 2024.05.22.:30
        728x90
        반응형

        [Java] 89. 사용자 모드와 커널 모드

        1. 컴퓨터의 구성

        2. 소프트 웨어 시스템의 구성

        3. 이중 모드와 시스템 호출

        4. 인터럽트


         

        1. 컴퓨터의 구성

        (1) 컴퓨터 시스템은 크게 하드웨어(Hardware)와 소프트웨어(Software) 두 가지로 나눌 수 있다.

        (2) 하드웨어(Hardware)는 물리적으로 컴퓨터 시스템을 구성하고 있는 기계장치이다.

        (3) 소프트웨어(Software)는 논리적으로 컴퓨터 시스템을 구성하고, 하드웨어들을 관리하고 동작시킨다.

        *소프트웨어는 명령어들의 집합으로 볼 수 있으며, 그것들을 '프로그램'이라고 말할 수 있다.

         


         

        2. 소프트 웨어 시스템의 구성 : 운영 체제의 핵심은 커널!

        (1) 소프트웨어 시스템은 User 프로그램(사용자 프로그램)과 OS 프로그램(운영체제)로 나뉜다.

        (2) OS 프로그램(운영체제)는 사용자에게 GUI를 제공하여 사용자와 컴퓨터 간의 상호작용을 쉽게 처리할 수 있도록 도와주며, 다양한 소프트웨어 응용 프로그램들을 관리하는 등 많은 서비스를 지원한다. 

        (3) OS 프로그램 내에서도 가장 핵심적인 서비스가 있는데, 바로 자원에 접근하고 조작하는 기능이다.  

        이 핵심 서비스를 담당하는 부분을 커널(Kernel)이라고 한다.

         


         

        3. 이중 모드와 시스템 호출

        (1) OS 프로그램은 사용자가 실행하는 응용 프로그램들이 하드웨어 자원에 직접 접근하는 것을 방지하여, 자원을 보호한다. 만약 응용 프로그램이 CPU, 메모리 등 하드웨어를 마음대로 접근하고 조작할 수 있다면 자원에 악영향을 미칠 수 있기 때문이다. 

        (2) 때문에 운영체제는 응용 프로그램들이 자원에 접근하려고 할 때마다, 하드웨어로 직접 접근하는 것이 아니라, 자신을 통해서 하드웨어에게 접근하도록 한다. 이를 이중 모드라고 말한다.

         

        (3) 이 때, 사용자 모드(User 프로그램, 응용 프로그램)이 자원에 접근하는 운영체제 서비스를 제공받으려면, 운영체제에 직접 요청을 보내 커널 모드로 전환되어야 한다. 이런 요청을 시스템 호출(System Call)이라고 한다.

        (4) 일반적으로 응용 프로그램은 실행 과정에서 운영체제 서비스를 빈번하게 이용한다. 그 과정에서 시스템 호출을 사용하게 되고, 사용자 모드와 커널 모드를 빠르게 오가게 된다.

         

         


         

        4. 인터럽트

        (1) 인터럽트는 하드웨어/소프트웨어에 의해 발생할 수 있는 신호로, 현재 프로세서가 수행 중인 작업을 잠시 중지하고, 긴급하게 처리해야 할 작업을 처리하기 위해 발생한다.

        (2) 인터럽트는 컴퓨터 시스템에서 매우 중요한 개념으로, 실행중인 프로그램의 일반적인 흐름을 일시적으로 중지시켜 특정 작업을 처리한 뒤, 다시 원래의 프로그램 실행으로 돌아가게 하는 메커니즘이다.

         

         


         

        5. 시스템 호출 vs 인터럽트

        (1) 발생 원인

        -시스템 호출: 운영체제의 서비스를 요청할 때

        -인터럽트: 예측 가능/불가능한 다양한 이유들로 발생

         

        (2) 처리 방식

        -시스템 호출: 사용자 프로그램과 운영체제 간의 인터페이스로 사용되며, 커널 모드로의 전환을 포함

        -인터럽트: 프로세서가 즉시 현재 작업을 중지하고, 인터럽트 처리 루틴을 실행하게 한다.

         

        *InterruptedException: 자바에서 스레드가 대기 상태(Sleep, wait)에 있을 때, 다른 스레드가 현재 스레드를 인터럽트 할 때 발생하는 예외이다.

        -> 즉, 하나의 스레드가 잠들어 있다가, 의도치 않게 다른 스레드가 인터럽트를 발생시킨 것이다.

        계속 대기 상태로 있어야 하는 스레드가 깨어나게 된다면, 적절한 예외처리를 통해 스레드 자원을 종료시키거나, 다른 작업을 수행시킬 수도 있다.

        728x90
        반응형

        'Java' 카테고리의 다른 글

        [Java] 91. 고수준 스트림 (Object)  (0) 2024.05.22
        [Java] 90. 고수준 스트림 (Data)  (0) 2024.05.22
        [Java] 88. 로그와 파일 저장  (0) 2024.05.21
        [Java] 87. 파일 복사(문자기반 입/출력), ZIP으로 압축  (0) 2024.05.21
        [Java] 86. 파일 출력 스트림 (2) (문자 기반 스트림)  (0) 2024.05.20
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바