[KOCW] 운영체제 3차시 - 운영체제 서비스

2021. 11. 8. 20:44·IT/CS 공부

운영체제 서비스

(칠판 그림 추가하기)

모든 application 프로그램은 HW 자원을 사용한다.

이때 자원을 관리하고 나눠주는 것은 OS가 담당.

 

이때 OS가 하는 일 (운영체제 서비스) ; 다 "관리" 업무

1. 프로세스 관리

2. 주기억장치(메모리) 관리

3. 파일 관리

4. 입출력 관리

5. 네트워킹 (컴퓨터끼리 통신)

6. 보호

 

각 부서별로 어떤 일을 하는 가 알아보자

 


1. 프로세스 관리

; OS에서 가장 중요한 역할 중의 하나

프로세스 : 메모리에서 실행 상태에 있는 프로그램

cpu에서는 메모리에 올라와있는 프로그램만 다루기 때문에, 특별히 프로그램 관리가 아닌 '프로세스 관리'라고 한다.

 

주 기능 ; 프로세스의 생성-소멸, 프로세스 활동 일시중지-활동재개, 프로세스간 통신, 프로세스간 동기화, 교착상태 처리

 

 

2. 주기억장치 관리

 

메모리의 어느 부분이 어느 프로세스에 할당되어 있는가

프로세스 종료 시 메모리 회수

메모리를 효과적으로 사용

가상메모리 기술; (일반적으로 메모리는 용량이 작지만, 하드디스크는 용량이 크다.

그렇지만 난 메모리를 좀 더 크게 사용하고 싶어! -- 가상메모리 기술)

 

 

3. 파일 관리

(디스크의 원리 -- 칠판 그림 첨부하기)

원래는 물리적으로 track/sector의 집합으로 이루어져있지만, 그걸 사용자에게는 파일이라는 개념으로 보이도록 OS가 관리해줌

주기능 ; 파일 생성/삭제, 디렉토리 생성/삭제, 기본 동작지원 (open, close, read, write, create, delete)

Track/sector - file 간의 매핑(mapping)

 

 

4. 보조기억장치 관리

track/sector을 몇개 모아놓은 것 -- block

(block 관련 추가 조사, 추가자료 첨부하기)

이 블락들의 비어있는 공간, 사용되는 공간이 나눠지는데 이런 공간관리를 얘가 함

 

 

주 기능 ; 빈공간 관리, 저장공간 할당, 디스크 스케쥴링(블락들이 흩어져있는데, 여기 헤드를 많이 움직이면 시간이 만ㅎ이걸리는데, 이때 어떻게 하면 헤드를 적게 움직이면서 원하는 트랙이나 섹터를 읽어올 수 있을 것인가를 결정해줌)

 

 

5. 입출력 장치 관리

 

I/O 장치 관리

주기능 ; 장치 드라이브(새로운 장치 설치할 때), 입출력장치의 성능향상 : buffering(입출력장치에서 읽은 내용을 일단 메모리로 들고오는 것. 한번 들고오면 빨리 읽을 수 있다), caching, spooling(메모리 대신에 하드디스크를 중간매체로 사용하는 것, ex.프린터로 인쇄하는 경우)

 

 


시스템 콜 (System call) ; 운영체제 서비스를 받기 위한 호출

APP 에서 OS를 호출하는 경우 ('야 OS야 이런일 해주라, 저런일 해주라') -- 칠판 그림 첨부

- 주요시스템 콜

- process : end, abort, load, execute, create, terminate, get/set, attributes, wait event, signal event,

- Memory : allocate, free

- File : 생성, 삭제, 열고 닫고 읽고 쓰고 ...

...

 

일반 application 프로그램이 OS한테 요청하는 것을 system call 이라고 한다.

시스템 콜은 일반적으로 특정 레지스터에 특정 값을 준다음에, 소프트웨어 인터럽트를 걸어서 서비스를 받을 수 있다.

 

 

예제 : MS-DOS

- 80년대 pc에서 사용되던 OS

- INT 21H

링크 누르면 DOS 인터럽트 코드 있음

System call을 어떻게 만드는 지 과정

(3C번 function 코드가 create file. -> 'CPU 속의 register에 파일의 속성(파일의 생성날짜, 주인, 파일인지 디렉토리인지 등등)을 넣어라'

여기서 어쩌고 저쩌고 더 있던 것 같은 데 그건 추후 추가해서 수정)

예제 : 파일 만들기 (create file)

 - AH = 3CH. CX = file attributes, DS:DX = file name

(추후 수정; 직접 실습하는 거 이미지-움짤 만들어서 올리기)

 어셈블리어로 실습?

 메모리 어딘가에 우리가 만들고자하는 파일("AAA")을 둔다(100번지에)

 mov CX, 0

 mov dx, 100 // 100번지에 dx를 둔다

 mov AH, 3C

 int 21h // 인터럽트

 

-> 이걸 실행하면 100번지에 "AAA"라는 파일이 만들어진다??

 

예제 : 리눅스

- INT 80H

- 예제 : 파일 만들기 (create file)

  - EAX = 8, ECX = file attributes, EBX = file name

 

코드 (어셈블리): 

  mov EAX, 8

  mov ECX, 0

  mov EBX, '파일이름(파일이름이 적힌 주소)'

  int 80h

-> 이걸 실행하면 n번지에 "AAA"라는 파일이 만들어진다

 

(직접 터미널 창에서 뭐 하는거 있는데 이것도 해보고 영상-움짤-짤 올리기)

 

 

내가 하드디스크에 파일을 어떻게 만들 수 있을까?

-- 파일이름 + attribute 한 뒤에 -> OS한테 부탁만 한다

하드디스크의 몇번째 줄 몇번쨰 섹터에 넣을 지 고민할 필요도 없이, 그냥 정해진 약속대로 EAX, ECX 등등에 정해진 값만 넣고 소프트웨어 인터럽트만 걸어주면 됨.

 

시스템 콜은 어셈블리어로 작성하면 된다.

 

시스템 콜 라이브러리 -- 파일을 지우고/만드는 등의 이러한 루틴들을 처음부터 object 파일 형태로 만들어 우리한테 제공함 

저작자표시 (새창열림)

'IT > CS 공부' 카테고리의 다른 글

[컴파일러] LL 파서와 LR 파서  (0) 2022.06.10
[KOCW] 운영체제 3차시 - 프로세스 관리  (0) 2021.11.08
[KOCW] 운영체제 3차시 - 이중모드, 하드웨어 보호  (0) 2021.11.08
[KOCW] 운영체제 2차시 - 고등운영체제, 인터럽트 기반 운영체제  (0) 2021.10.27
[KOCW] 운영체제 2차시 - 운영체제 역사  (0) 2021.10.27
'IT/CS 공부' 카테고리의 다른 글
  • [컴파일러] LL 파서와 LR 파서
  • [KOCW] 운영체제 3차시 - 프로세스 관리
  • [KOCW] 운영체제 3차시 - 이중모드, 하드웨어 보호
  • [KOCW] 운영체제 2차시 - 고등운영체제, 인터럽트 기반 운영체제
남서아 (구 - 밥한그릇배따시게)
남서아 (구 - 밥한그릇배따시게)
학습하고 정리한 내용 중, 공유할만한 것들을 포스팅합니다. / 소프트웨어 학사 (2025년도 2월 졸업)
  • 남서아 (구 - 밥한그릇배따시게)
    Wendy 기술블로그
    남서아 (구 - 밥한그릇배따시게)
  • 전체
    오늘
    어제
  • 🌐 LANGUAGE
  • 공지사항

    • 개발자 정보 및 포트폴리오
    • 포스팅 목적
  • 링크

    • Portfolio
    • 분류 전체보기 (99)
      • IT (59)
        • 클라우드 & 인프라 (2)
        • CS 공부 (12)
        • 42Seoul (19)
        • 개발 언어 및 도구 (4)
        • 개발 환경 및 설치 (5)
        • 튜토리얼 및 가이드 (10)
        • Data & AI (5)
        • ETC (2)
      • Experience (4)
      • English (32)
        • 회화 (5)
        • 자격증 공부 (26)
        • 후기 (1)
      • 근황 (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • hELLO· Designed By정상우.v4.10.3
남서아 (구 - 밥한그릇배따시게)
[KOCW] 운영체제 3차시 - 운영체제 서비스
상단으로

티스토리툴바